因此,如果我进入QtDesigner并构建一个UI,它将被保存为.ui文件。如何将其作为python文件或在python中使用?
答案 0 :(得分:57)
在代码中使用.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',因此您必须使用此名称将资源编译到文件中,或者在生成的代码中重命名它。
答案 1 :(得分:43)
结合Max's answer和Shriramana Sharma's mailing list post,我构建了一个小工作示例,用于加载包含mywindow.ui
的{{1}}文件(因此,只需选择在Qt Designer中创建主窗口) QMainWindow
对话框)。
这是加载它的代码:
File-New
答案 2 :(得分:28)
您需要使用pyuic工具(site-packages \ pyqt4 \ bin)从您的ui文件生成python文件
pyuic form1.ui > form1.py
使用pyqt4
pyuic4.bat form1.ui > form1.py
然后您可以将form1导入到脚本中。
答案 3 :(得分:24)
我发现这篇文章非常有帮助。
http://talk.maemo.org/archive/index.php/t-43663.html
我将简要描述创建和更改.ui文件到.py文件的操作,取自该文章。
创建并保存文件,现在我们将使用pyuic生成Python代码!
希望这有助于某人。
答案 4 :(得分:13)
您还可以使用以下代码在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_())
答案 5 :(得分:9)
我认为更清洁的方式是首先导出到.py,如上所述:
pyuic4 foo.ui > foo.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-designer的人阅读代码,并将您的功能代码保存在foo.py
之外,可以被设计人员覆盖。您只需引用ui
到MyWindow
类,如上所示。
答案 6 :(得分:8)
您可以使用以下命令将.ui文件转换为可执行的python文件。
pyuic4 -x form1.ui > form1.py
现在你可以直接执行python文件
python3(whatever version) form1.py
您可以导入此文件,然后就可以使用它。
答案 7 :(得分:5)
你可以像这样编译ui文件
pyuic4 -x helloworld.ui -o helloworld.py
答案 8 :(得分:4)
为了将.ui文件编译成.py文件,我做了:
python pyuic.py form1.ui > form1.py
ATT。
答案 9 :(得分:2)
in pyqt5 to convert from a ui file to .py file
pyuic5.exe youruifile.ui -o outputpyfile.py -x
答案 10 :(得分:0)
使用Anaconda3(2018年9月)和QT Designer 5.9.5。 在QT设计器中,将文件另存为ui。 打开Anaconda提示符。搜索文件:cd C:...(复制/粘贴文件的访问路径)。 然后输入:pyuic5 -x helloworld.ui -o helloworld.py(helloworld =文件名)。输入。 启动Spyder。打开您的文件.py。
答案 11 :(得分:0)
( 2020年11月)这对我有用( UBUNTU 20.04 ):
pyuic5 /home/someuser/Documents/untitled.ui > /home/someuser/Documents/untitled.py