我几周前开始使用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
应该是一个正则表达式,它与为您的小部件生成的文件相匹配。