[英]Use Qt Design Studio QML with PySide2
我是 Qt Designer Studio 的新手。 我刚刚在 Qt Design Studio 中创建了一个简单的按钮,我正在尝试将 QML 文件与 PySide2 一起使用,但出现多个导入错误。 有没有一种特定的方法可以使用 PySide2 实现 Qt Design Studio qml 文件。
项目名称是我在 Qt Design Studio 中创建的 Demo
演示项目结构:
Demo.qml
Demo.qmlproject
Demo.qmlproject.qtds
imports
qtquickcontrols2.conf
Screen01.ui.qml
PySide2 项目结构(main.py 文件包含代码):
Demo.qml
Demo.qmlproject
Demo.qmlproject.qtds
imports
qtquickcontrols2.conf
Screen01.ui.qml
main.py
主要.py:
from PySide2.QtWidgets import QApplication, QMainWindow
from PySide2.QtQuick import QQuickView
from PySide2.QtCore import QUrl
from imports import QtQuick
app = QApplication([])
view = QQuickView()
url = QUrl("Screen01.ui.qml")
view.engine().addImportPath("imports")
view.setSource(url)
view.show()
app.exec_()
错误:
module "QtStudio3D" is not installed
module "Qt.SafeRenderer" is not installed
Screen01.ui.qml
import QtQuick 2.12
import Demo 1.0
import QtQuick.Controls 2.3
Rectangle {
width: Constants.width
height: Constants.height
color: Constants.backgroundColor
Button {
id: nameButton
x: 136
y: 227
text: qsTr("Button")
}
}
使用PyQt和 Qt Designer 创建 UI
对于在这里用谷歌搜索绊倒的人,我得到了主窗口以正确显示:
import sys
import os
from PySide2.QtCore import Qt, QObject, Signal, Slot, Property
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.addImportPath("imports")
print(engine.importPathList() )
engine.load('qttest2.qml')
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())
文件 qttest2.qml 来自 qt design studio,包含(必须为主窗口手动编辑):
import QtQuick 2.12
import QtQuick.Layouts 1.3
import qttest2 1.0
import QtQuick.Controls 2.12
ApplicationWindow {
visible: true
width: 800
height: 500
Item {
width: Constants.width
height: Constants.height
Screen01 {
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.