[英]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.