几周前我开始使用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
个文件作为输入?
答案 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
应该是与为小部件生成的文件相匹配的正则表达式。