У меня есть большой прямоугольник с кнопкой по центру. Я хотел бы, чтобы мой прямоугольник был прозрачным для событий мыши, кроме кнопки, которая должна быть интерактивной. Я имею в виду, что я хотел бы иметь возможность выбирать код под моим прямоугольником с помощью мыши, точно так же, как если бы Rectangle не отображался.QQuickView (QML) прозрачный для событий мыши
Я добавил MouseArea для всех больших Rect, пытаясь игнорировать события мыши, но это не сработает.
Я читал, что для этой цели используется «Qt :: WA_TransparentForMouseEvents», но в Qt-окнах как fasr, как я знаю, недоступно в моем случае.
Заранее спасибо
Мой 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 - Appart, что 'Прямоугольник' должен быть нарисовано полупрозрачным, и есть только одна кнопка «Button» – derM
И что вы пытаетесь сделать с этим «MouseArea», я все-таки делаю не получить. – derM