0

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

4

1 回答 1

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应该是与为您的小部件生成的文件匹配的正则表达式。

于 2013-04-29T10:35:10.437 回答