私はボタンが中央にある大きな四角形を持っています。ボタンを除いて、マウスイベントにトランスペアレントであり、クリック可能でなければなりません。つまり、矩形が表示されていない場合とまったく同じように、マウスで矩形下のコードを選択できるようにしたいと考えています。QQuickView(QML)はマウスイベントを透過します
マウスイベントを無視しようとして、すべての大きなRectに対してMouseAreaを追加しましたが、動作しません。
「Qt :: WA_TransparentForMouseEvents」はその目的のために使用されていますが、わたしの知る限り、Qtウィンドウでは私の場合は利用できません。
マイQMLはmain.cppにからロードされ、事前に
ありがとう:
QQuickView* pView = new QQuickView();
pView->setSource(QUrl("qrc:/MyRect.qml"));
pView->setFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
pView->setColor("transparent");
pView->show();
MyRect.qml:
import QtQuick 2.0
import QtQuick.Controls 1.4
Rectangle {
width: 500
height: 500
color: "green" // it would be transparent
opacity: 0.5
Button {
anchors.centerIn: parent
height: 50; width: 50
onClicked: console.log("clicked");
}
MouseArea {
anchors.fill: parent
enabled: false
propagateComposedEvents: true
hoverEnabled: false
// All this code I think is useless...
onClicked: mouse.accepted = false
onReleased: mouse.accepted = false
onEntered: mouse.accepted = false
onExited: mouse.accepted = false
onWheel: mouse.accepted = false
}
}
: http://stackoverflow.com/questions/40833624/how-to-make-a-true-transparent-window-to-cursor-preferably-on-a-pure-qml-qt - 「Rectangle」を指定する必要があります。半透明で描画され、ボタンが1つしかありません – derM
そして、この 'MouseArea'を使って何をしようとしているのですか?取得しないでください。 – derM