5
Chcę wiedzieć, jak przesunąć okno, naciskając i przytrzymując pole MouseArea w Qt/QML.Przenoszenie okna na urządzenie Qml MouseArea
Chcę wiedzieć, jak przesunąć okno, naciskając i przytrzymując pole MouseArea w Qt/QML.Przenoszenie okna na urządzenie Qml MouseArea
można wystawiać widget widok na QML z:
QmlApplicationViewer viewer;
QDeclarativeContext *context = viewer.rootContext();
context->setContextProperty("viewerWidget", &viewer);
Następnie zmodyfikować jego pos
właściwość, aby przesunąć okno:
MouseArea {
anchors.fill: parent
property variant previousPosition
onPressed: {
previousPosition = Qt.point(mouseX, mouseY)
}
onPositionChanged: {
if (pressedButtons == Qt.LeftButton) {
var dx = mouseX - previousPosition.x
var dy = mouseY - previousPosition.y
viewerWidget.pos = Qt.point(viewerWidget.pos.x + dx,
viewerWidget.pos.y + dy)
}
}
}
można zmienić 'wariantowej nieruchomość previousPosition' do czegoś podobnego' nieruchomości point clickPos: Qt.point (1, 1) '. – troyane