如果我进入QtDesigner并构建UI,那么它将保存为.ui文件。我如何将其制作为Python文件或在Python中使用它?
如果我进入QtDesigner并构建UI,那么它将保存为.ui文件。我如何将其制作为Python文件或在Python中使用它?
在您的代码中使用 .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',因此您必须将资源编译到该名称的文件中,或者在生成的代码中重命名它。
结合Max的回答和Shriramana Sharma的邮件列表帖子,我构建了一个小的工作示例来加载包含QMainWindow
的mywindow.ui
文件(所以只需选择在Qt Designer的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_())
pyuic form1.ui > form1.py
使用PyQt4
pyuic4.bat form1.ui > form1.py
你可以将form1导入脚本中。
我发现这篇文章非常有帮助。
http://talk.maemo.org/archive/index.php/t-43663.html
我将简要描述从该文章中获得的创建和更改.ui文件为.py文件的操作。
文件已经创建并保存,现在我们将使用pyuic生成Python代码!
希望这能帮助到某些人。
您也可以使用以下代码在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
)使用它,例如:
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
之外,以防其被设计师覆盖。您只需通过上面所示的MyWindow
类引用ui
即可。
self.ui.okButton.clicked.connect(self.function_name)
给我返回了 TypeError: event() takes 1 positional argument but 2 were given
。你是如何解决的? - Ahsanul Haquepyuic4 -x form1.ui > form1.py
现在,您可以直接执行Python文件,方法如下:
python3(whatever version) form1.py
你可以像这样编译UI文件
pyuic4 -x helloworld.ui -o helloworld.py
python pyuic.py form1.ui > form1.py
注意。
pyuic5.exe youruifile.ui -o outputpyfile.py -x