繁体   English   中英

QML - 移动定制无框 window

[英]QML - Moving custom frameless window

我发现如何做 window 可拖动,但它使用的是旧的 QT,我不知道如何在当前的 QT/QML 中做到这一点:/请帮帮我

http://stackoverflow.com/questions/18927534/qtquick2-dragging-frameless-window

它不工作,因为它使用查看器,我不能在我的应用程序中使用它。

我的 main.cpp:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

我找到了怎么做,这很容易:D

MouseArea {
            anchors.fill: parent
            property real lastMouseX: 0
            property real lastMouseY: 0
            onPressed: {
                lastMouseX = mouseX
                lastMouseY = mouseY
            }
            onMouseXChanged: window.x += (mouseX - lastMouseX)
            onMouseYChanged: window.y += (mouseY - lastMouseY)
        }

您可以非常简单。 像下面的代码

 Rectangle { id: rect width: 100 height: 100 color: "red" 
    MouseArea {
        anchors.fill: parent
        drag{ target: parent; axis: Drag.XandYAxis}

        onMouseXChanged: {
            if(drag.active){
                print(rect.x)
            }
        }

        onMouseYChanged: {
            if(drag.active)
            {
                print(rect.y)
            }
        }
    }
}

谢谢

如果您有任何抖动问题,请尝试按比例缩小鼠标偏差。

MouseArea {
        anchors.fill: parent
        property real lastMouseX: 0
        property real lastMouseY: 0
        onPressed: {
            lastMouseX = mouseX
            lastMouseY = mouseY
        }
        onMouseXChanged: window.x += (mouseX - lastMouseX) * 0.3 
        onMouseYChanged: window.y += (mouseY - lastMouseY) * 0.3 
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM