5

Qt/QMLでMouseAreaを長押ししてウィンドウを移動する方法を知りたいです。

4

1 に答える 1

7

以下を使用して、ビュー ウィジェットを 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)
        }
    }
}    
于 2012-04-18T16:01:21.263 に答える