【发布时间】:2012-04-18 05:21:51
【问题描述】:
我想知道如何在 Qt/QML 中按住 MouseArea 来移动窗口。
【问题讨论】:
我想知道如何在 Qt/QML 中按住 MouseArea 来移动窗口。
【问题讨论】:
您可以通过以下方式将视图小部件公开给 QML:
QmlApplicationViewer viewer;
QDeclarativeContext *context = viewer.rootContext();
context->setContextProperty("viewerWidget", &viewer);
然后修改它的pos属性来移动窗口:
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)
}
}
}
【讨论】:
property variant previousPosition 更改为property point clickPos: Qt.point(1, 1)。