因此,如果我进入 QtDesigner 并构建一个 UI,它将被保存为。Ui 文件。如何将其作为一个 python 文件或在 python 中使用它?
您需要使用 pyuic 工具(site-package pyqt4 bin)从 ui 文件生成一个 python 文件
pyuic form1.ui > form1.py
与 pyqt4
pyuic4.bat form1.ui > form1.py
然后可以将 form1导入到脚本中。
您可以使用以下命令将.ui 文件转换为可执行的 python 文件。
pyuic4 -x form1.ui > form1.py
现在您可以直接执行 python 文件
python3(whatever version) form1.py
您可以导入这个文件并使用它。
在代码中使用.ui 的另一种方法是:
from PyQt4 import QtCore, QtGui, uic class MyWidget(QtGui.QWidget) ... #somewhere in constructor: uic.loadUi('MyWidget.ui', self)
两种方法都不错。不要忘记,如果您使用 Qt 资源文件(非常有用)的图标等,您必须编译它太:
pyrcc4.exe -o ui/images_rc.py ui/images/images.qrc
注意,当 uic编译接口时,它在。Py 文件,因此必须将资源编译为具有此名称的文件,或者在生成的代码中重命名该文件。
uic
我觉得这篇文章很有帮助。
Http://talk.maemo.org/archive/index.php/t-43663.html
我将简要描述创建.ui 文件并将其更改为. py 文件的操作,这些操作摘自上一篇文章。
创建并保存了该文件,现在我们将使用 pyuic 从中生成 Python 代码!
希望这对谁有帮助。
结合 麦克斯的回答和 Shriramana Sharma 的邮件列表,我构建了一个小的工作示例,用于加载包含 QMainWindow的 mywindow.ui文件(因此只需选择在 Qt Designer 的 File-New对话框中创建一个 Main Window)。
QMainWindow
mywindow.ui
File-New
下面是加载它的代码:
import sys from PyQt4 import QtGui, uic class MyWindow(QtGui.QMainWindow): def __init__(self): super(MyWindow, self).__init__() uic.loadUi('mywindow.ui', self) self.show() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = MyWindow() sys.exit(app.exec_())
您可以像这样编译 ui 文件
pyuic4 -x helloworld.ui -o helloworld.py
为了将.ui 文件编译成.py 文件,我这样做了:
python pyuic.py form1.ui > form1.py
阿特。
还可以使用 PyQt5中的 uic和以下代码。
from PyQt5 import uic, QtWidgets import sys class Ui(QtWidgets.QDialog): def __init__(self): super(Ui, self).__init__() uic.loadUi('SomeUi.ui', self) self.show() if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = Ui() sys.exit(app.exec_())
在我看来,更简单的方法是首先像前面提到的那样导出到. py:
pyuic4 foo.ui > foo.py
然后在代码中使用它(例如 main.py) ,比如:
main.py
from foo import Ui_MyWindow class MyWindow(QtGui.QDialog): def __init__(self): super(MyWindow, self).__init__() self.ui = Ui_MyWindow() self.ui.setupUi(self) # go on setting up your handlers like: # self.ui.okButton.clicked.connect(function_name) # etc... def main(): app = QtGui.QApplication(sys.argv) w = MyWindow() w.show() sys.exit(app.exec_()) if __name__ == "__main__": main()
这种方法使其他不使用 qt 设计器读取代码的人能够读取代码,并且还将功能代码保留在 foo.py之外,这些代码可能会被设计器覆盖。您只需引用 ui到 MyWindow类,如上所示。
foo.py
ui
MyWindow
使用 Anaconda3(2018年9月)和 QT 设计器5.9.5。 在 QT 设计器中,将文件保存为 ui。 打开 Anaconda 提示。搜索您的文件: cd C: ... (复制/粘贴文件的访问路径)。 然后写: pyuic5-x helloworld.ui-o helloworld.py (helloworld = 文件名)。 启动 Spyder。打开您的文件。
在 pyqt5中将 ui 文件转换为.py 文件
pyuic5.exe youruifile.ui -o outputpyfile.py -x
(2020年11月)这对我有用(UBUNTU 20.04) :
pyuic5 /home/someuser/Documents/untitled.ui > /home/someuser/Documents/untitled.py