将qtDesigner .ui文件链接到python/pyqt?

84 投票
12 回答
142379 浏览
提问于 2025-04-15 20:08

如果我在QtDesigner里设计了一个用户界面,它会保存成一个.ui文件。那我该怎么把这个.ui文件变成一个Python文件,或者在Python中使用它呢?

12 个回答

30

你需要用pyuic工具从你的ui文件生成一个python文件,这个工具在site-packages\pyqt4\bin目录下。

pyuic form1.ui > form1.py

使用pyqt4。

pyuic4.bat form1.ui > form1.py

然后你就可以在你的脚本中导入form1了。

55

结合了 Max 的回答Shriramana Sharma 在邮件列表上的帖子,我做了一个小示例,用来加载一个包含 QMainWindowmywindow.ui 文件(在 Qt Designer 的 文件-新建对话框中选择创建一个主窗口即可)。

下面是加载这个文件的代码:

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_())
66

在你的代码中使用.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文件的末尾添加'import images_rc',所以你必须把资源编译成这个名字的文件,或者在生成的代码中重命名它。

撰写回答