【问题标题】:Moving the window on holding Qml MouseArea按住 Qml MouseArea 移动窗口
【发布时间】:2012-04-18 05:21:51
【问题描述】:

我想知道如何在 Qt/QML 中按住 MouseArea 来移动窗口。

【问题讨论】:

    标签: qt qml


    【解决方案1】:

    您可以通过以下方式将视图小部件公开给 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)
    猜你喜欢
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 2016-07-04
    • 2020-12-11
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    相关资源
    最近更新 更多