我正在寻找一种在QtQuick2中拖动无框窗口的方法。 我在论坛Link上休息了这个帖子,但它给了我一个错误。QtQuick2拖动无框窗口
代码的主要区别在于我的代码使用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甚至可能吗? 感谢您的帮助!
谢谢@Dcow!对我也有效:) –
什么是'rootWindow'?我无法在qml中找到这个文件javascript – jondinham
@PaulDinham rootWindow是您的主窗口或窗口的id属性,您希望dragg – Dcow