我已经使用PyQt很长一段时间了,在使用它的整个过程中,都有一个非常一致的编程模式。
- 使用Qt设计器创建一个.ui文件
- 创建一个与您在.ui文件中创建的小部件类型相同的python类
- 初始化python类时,使用uic将.ui文件动态加载到类中
在PySide有什么类似的方法吗?我已经通读了文档和示例,我能找到的最接近的是一个计算器示例,它将.ui文件预先呈现为python代码,这是PyQt中的一种非常古老的方法(当你可以解析ui时,为什么要将其烘焙为python?)
我正在用PySide做这件事。:)
你用这个https://gist.github.com/cpbotha/1b42a20c8f3eb9bb7cb8(Sebastian Wiesner原创https://github.com/lunaryorn/snippets/blob/master/qt4/designer/pyside_dynamic.py但是已经消失)-它覆盖PySide.QtUiTools.QUiLoader,并提供一个新的loadUi()
方法,以便您可以执行此操作:
class MyMainWindow(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
loadUi('mainwindow.ui', self)
当您实例化MyMainWindow时,它将具有您使用Qt设计器设计的UI。
如果您还需要使用自定义小部件(Qt Designer中的"Promote to"),请参阅以下答案:https://stackoverflow.com/a/14877624/532513