Python 将Qt Design Studio QML与PySide2一起使用

Python 将Qt Design Studio QML与PySide2一起使用,python,qml,qtquick2,pyside2,qt-design-studio,Python,Qml,Qtquick2,Pyside2,Qt Design Studio,我是Qt设计师工作室的新手。我刚刚在Qt Design Studio中创建了一个简单的按钮,我正在尝试将QML文件与PySide2一起使用,但是我遇到了多个导入错误。是否有一种特定的方法可以使用PySide2实现Qt Design Studio qml文件 项目名称是我在Qt设计工作室中创建的Demo 演示项目结构: Demo.qml Demo.qmlproject Demo.qmlproject.qtds imports qtquickcontrols2.conf

我是Qt设计师工作室的新手。我刚刚在Qt Design Studio中创建了一个简单的按钮,我正在尝试将QML文件与PySide2一起使用,但是我遇到了多个导入错误。是否有一种特定的方法可以使用PySide2实现Qt Design Studio qml文件

项目名称是我在Qt设计工作室中创建的Demo

演示项目结构:

   Demo.qml
   Demo.qmlproject
   Demo.qmlproject.qtds
   imports
   qtquickcontrols2.conf
   Screen01.ui.qml
PySide2项目结构(main.py文件包括代码):

main.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")
    }
}

使用和Qt Designer创建UI

使用和Qt Designer为ppl创建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,包含(必须为主窗口手动编辑):


对于ppl在谷歌搜索中的绊脚石,我得到了一个主窗口来正确显示:

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,包含(必须为主窗口手动编辑):


嗨@eylianesc。我已经用Screen01.ui.qml的内容更新了这个问题。请看一看@当我在CentOS系统上使用它时,eyllanescIt给出了这两个错误。模块“QtStudio3D”未安装,模块“Qt.SafeRenderer”未安装。另外,我如何与用户界面上的按钮交互,当我在Qt DS中使用设计的全屏时,它会将部分应用程序屏幕显示为白色。让我们来看看。我使用的是PySide2==5.14.1Hi@eylianesc。我已经用Screen01.ui.qml的内容更新了这个问题。请看一看@当我在CentOS系统上使用它时,eyllanescIt给出了这两个错误。模块“QtStudio3D”未安装,模块“Qt.SafeRenderer”未安装。另外,如何与用户界面上的按钮交互,当我在Qt DS中使用设计的全屏时,它会将部分应用程序屏幕显示为白色
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 {
    }
  }
}