从pyuic5转换的Python代码中显示PySide2 UI

时间:2017-10-23 22:37:26

标签: python qt pyside pyside2

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

我找到了使用PySide1显示UI的代码片段,但作为新手用户,我不了解如何将代码移植到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文件以及如何使用输出文件的完整教程。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

是的,在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方法提取所需的小部件对象。

答案 2 :(得分:0)

在最新版本(uic 5.15)中,仅使用-x不再使用参数-x

pyside2-uic mainwindow.ui -o mainwindow.py

答案 3 :(得分:-1)

我使用 pyside2-uic.py 生成 .ui
添加这个对我有用。
来自: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()