将qtDesigner .ui文件链接到python/pyqt?
如果我在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 在邮件列表上的帖子,我做了一个小示例,用来加载一个包含 QMainWindow
的 mywindow.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',所以你必须把资源编译成这个名字的文件,或者在生成的代码中重命名它。