gpt4 book ai didi

QtQuick2拖动无框窗口

转载 作者:行者123 更新时间:2023-12-04 05:07:15 25 4
gpt4 key购买 nike

我正在寻找一种在QtQuick2中拖动无框架窗口的方法。
我在论坛Link上关注了此主题,但它给了我一个错误。

代码中的主要区别是我的代码使用QtQuick2ApplicationViewer而不是QmlApplicationViewer,并且看来QtQuick2ApplicationViewer没有“.pos”属性。

这是我的main.cpp

#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include <QQmlContext>

int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);

QtQuick2ApplicationViewer viewer;
viewer.rootContext()->setContextProperty("QmlApplicationViewer", (QObject *)&viewer);
viewer.setFlags(Qt::FramelessWindowHint);
viewer.setMainQmlFile(QStringLiteral("qml/ubusell/main.qml"));
viewer.showExpanded();

return app.exec();
}

这是我的main.qml的一部分

MouseArea {
id: mouseRegion
anchors.fill: parent;
property variant clickPos: "1,1"

onPressed: {
clickPos = Qt.point(mouse.x,mouse.y)
}

onPositionChanged: {
var delta = Qt.point(mouse.x-clickPos.x, mouse.y-clickPos.y)
print(QmlApplicationViewer.pos)
QmlApplicationViewer.pos = (20,20)
QmlApplicationViewer.pos = Qt.point(QmlApplicationViewer.pos.x+delta.x,
QmlApplicationViewer.pos.y+delta.y)
}
}

当我尝试拖动窗口时,出现此错误:

TypeError: Cannot read property 'x' of undefined



有任何想法吗 ?
QtQuick2甚至可能吗?
感谢帮助!

最佳答案

在我的项目中,我这样做:

property variant clickPos: "1,1"

onPressed: {
clickPos = Qt.point(mouse.x,mouse.y)
}

onPositionChanged: {
var delta = Qt.point(mouse.x-clickPos.x, mouse.y-clickPos.y)
rootWindow.x += delta.x;
rootWindow.y += delta.y;
}

MouseArea中。

关于QtQuick2拖动无框窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18927534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com