无法将QtQuick Controls 2与Pyside 2一起使用

时间:2017-12-28 17:59:51

标签: qml qt5 python-3.5 pyside2

我已经设置:

Python 3.5.3虚拟环境 编译了Pyside 2提交fafd92f428d51bdd56c90a73149c441773dd9155(因为最新的2次提交存在丢失qrandomgenerator文件的问题)。

使用Qt 5.9.3,MSVC2015 x64和cmake 3.10.1完成编译

我正在尝试将其设置为开始使用QML,更具体地说是Material Style。但是,当我运行我的应用程序时,如果QML导入QtQuick.Controls 2.0或更高版本,engine.rootObjects()将返回一个空列表。我可以导入QtQuick.Controls版本1.0 - 1.5。编译时我错过了什么吗?或者我的代码有问题吗?

代码如下:

的Python

import sys
from PySide2 import QtGui
from PySide2 import QtQml

app = QtGui.QGuiApplication(sys.argv)
engine = QtQml.QQmlApplicationEngine()
ctx = engine.rootContext()
ctx.setContextProperty("qmlapp", engine)
engine.load('view.qml')
win = engine.rootObjects()[0]
win.show()
sys.exit(app.exec_())

QML

import QtQuick 2.9
import QtQuick.Controls 2.2

ApplicationWindow {}

我从Qt Quick Controls 2的文档中获取了这些版本号。

1 个答案:

答案 0 :(得分:1)

我发现问题是我的路径中需要QT bin。运行以下内容更正了问题:

(venv35) C:\my\project\dir\>set PATH=C:\Qt\5.9.3\msvc2015_64\bin;%PATH%