Qt设计器-生成只有一个.ui文件与几个小部件



我几周前开始使用Qt Designer为我的PySide应用程序生成一些自定义小部件。有一些我希望我能做的事情,但我无法找到方法:我想把所有的小部件保存在一个大的.ui中,然后把它们编译成一个大的.py文件,这样所有的GUI细节都在同一个文件中,比如gui.py。这将允许我这样写:

import gui.MainWindow
import gui.FluffyRabbitWidget
class MainWindow(gui.MainWindow): pass
class FluffyRabbitWidget(gui.FluffyRabbitWidget): pass

那么我就不必麻烦有一大堆不同的Python代码文件,因为它是生成的,我永远不会读。所以,我怎么能管理只有一个大的.ui文件?如果不可行,是否有一种方法可以告诉pyside-uic只生成一个.py文件和几个.ui文件作为输入?

阅读pyside-uic的源代码,您可以看到它不接受一个以上的.ui参数:

opts, args = parser.parse_args()
if len(args) != 1:
    sys.stderr.write("Error: one input ui-file must be specifiedn")
    sys.exit(1)
sys.exit(invoke(Driver(opts, args[0])))

所以答案是:不。pyside-uic不能这样做。

一个肮脏的解决方案可能是将生成的文件一起cat,但这必须在每次修改小部件时完成:

$ cat generated_*.py > gui.py

(其中generated_*.py应该是一个正则表达式,它与为您的小部件生成的文件相匹配。

最新更新