目前正在开发一个 Python 程序,该程序使用 .ui 文件中的 Qt Widgets 来显示可交互的 GUI。但是,我还没有找到一种方法来集成 QQuickview 小部件以显示任何我读过的 QML 代码。
我正在使用 PySide2 从 Qt Designer 转换 .ui 文件,并且都尝试使用在 Qt Designer 中找到的 QQuickWidget,并手动将 QQuickView 添加到 .ui 中的 gridLayout 没有成功。
我在 Qt Designer 中添加的 QQuickWidget 是,据我所知,在 python 中运行时转换为 QWidget,因此 setSource(QUrl) 或 .load(QUrl) 在运行代码时没有任何意义。
我尝试添加 QQuickView:
def connect_map_click(self):
# Function for handling the connect map button
engine = QQuickView()
ctx = engine.rootContext()
url = QUrl.fromLocalFile('QMLtest.qml')
engine.setSource(url)
container = QWidget.createWindowContainer(engine, self)
container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
engine.show()
self.window.grd_map.addWidget(container, 0, 0)
QML 文件:
import QtQuick 2.7
Rectangle {
id: rectangle
color: "red"
width: 200
height: 200
visible: true
Text {
id:text
text: "It's working!"
}
}