Qt Designer - 只生成一个包含多个小部件的.ui文件

时间:2013-04-29 09:31:52

标签: python qt pyside qt-designer

几周前我开始使用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个文件作为输入?

1 个答案:

答案 0 :(得分:1)

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

opts, args = parser.parse_args()

if len(args) != 1:

    sys.stderr.write("Error: one input ui-file must be specified\n")

    sys.exit(1)

sys.exit(invoke(Driver(opts, args[0])))

所以答案是:不。 pyside-uic无法做到这一点。

脏解决方案可能一起cat生成的文件,但每次修改小部件时都必须这样做:

$ cat generated_*.py > gui.py

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