我是PyQt的新手,所以在这里忍受我......
我使用Qt Designer创建一个小部件,然后编译它并将其保存为.py。我编辑.py文件以添加一些额外的功能。但后来说我需要回到Qt Designer并更新GUI的布局。有没有办法编译,然后更新原始.py文件与更改,而不必手动复制/粘贴我的自定义代码?
答案 0 :(得分:0)
如果查看生成文件顶部的注释,您将看到以下行:
# WARNING! All changes made in this file will be lost!
这清楚地表明该文件不是要编辑的。但这不是问题,因为它只是一个普通的python模块,因此很容易将其导入主应用程序并从那里访问它。
您需要做的就是从Qt Designer创建顶级对象的子类(将是QMainWindow
,QDialog
或QWidget
),然后使用{生成的模块提供的{1}}方法,用于将所有小部件添加到该子类的实例中。
因此,如果来自Qt Designer的顶级对象被命名为“MainWindow”,pyuic将创建一个相应的setupUi
类,可以将其导入Ui_MainWindow
脚本并使用如下内容:
main.py
有关详细信息,请参阅Using Qt Designer中的PyQt Documentation。
答案 1 :(得分:0)
我个人讨厌编译它。但是像ekhumoro说的那样,你可以导入这个课程。我仍然不喜欢这个。 pyuic
有时导入讨厌的example_rc
内容,这会再次降低生产力水平。如果您绝对必须将.ui
转换为.py
,请创建一个.bat
文件来为您执行此操作。代码:
@ECHO OFF
cd [directory of choice]
pyuic[4/5, depends on pyqt] -x example.ui -o example.py
或者您的操作系统的任何内容。我个人喜欢使用ui = uic.loadUi('example.ui')
然后使用ui.setupUi()
。它可以让你更有效率!