【问题标题】:Displaying PySide2 UI from pyuic5 converted Python code从 pyuic5 转换的 Python 代码显示 PySide2 UI
【发布时间】:2017-10-23 22:37:26
【问题描述】:

所以我使用 QtDesigner 设计了我的 UI 并将其转换为 Python 类,该类名为 Ui_MainWindow,我要调用以显示 UI 的函数称为 setupUi。

我找到了使用 PySide1 显示 UI 的代码 sn-ps,但作为一个新手用户,我不明白如何将代码移植到 PySide2。

from PySide2 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(381, 347)......................................etc.

https://pastebin.com/NJXEaLrF

我找不到关于转换 .UI 文件以及如何使用输出文件的完整教程。

【问题讨论】:

    标签: python qt pyside pyside2


    【解决方案1】:

    在上一个版本(uic 5.15)中,参数 -x 不再使用,您只是使用

    pyside2-uic mainwindow.ui -o mainwindow.py
    

    在您的主要 Python 脚本中使用您的转译文件 (mainwindow.py):

    from PySide2.QtWidgets import QMainWindow                                                                                                                  
    from mainwindow import Ui_MainWindow
    
    MainWindow = QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    

    【讨论】:

    • UI 似乎没有使用此代码呈现。知道为什么吗?使用 pyuic5 确实有效。
    • @samwolfe 添加了使用指令。
    【解决方案2】:

    Sods law.. 我花了几天时间研究并在发布后几分钟找到了答案。诀窍是在使用 pyside2-uic 时使用 -x 参数,这将输出渲染 UI 所需的额外代码。

    【讨论】:

      【解决方案3】:

      是的,在 Qt Creator 或 Qt Designer 中创建用户界面文件 mainwindow.ui 后,您可以将其转换为 Qt for Python (PySide2):

      pyside2-uic -x mainwindow.ui -o desktop.py
      

      如果我们使用 PyQt5 包,我们会运行 pyuic5 进行转换。 如果我们使用 PySide2 包,我们会运行 pyside2-uic 进行转换。

      您还可以使用 QUiLoader 和 QFile 简单地加载 ui 文件。然后使用 findChild 方法提取您需要的小部件对象。

      【讨论】:

      • 未知选项'x'
      【解决方案4】:

      我使用pyside2-uic.ui 生成.py
      添加这个对我有用。
      来自:https://doc.qt.io/qtforpython/tutorials/basictutorial/uifiles.html

      class MainWindow(QMainWindow):
      def __init__(self):
          super(MainWindow, self).__init__()
          self.ui = Ui_MainWindow()
          self.ui.setupUi(self)
      
      window = MainWindow()
      window.show()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-25
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        相关资源
        最近更新 更多