如何使用PySide将.ui文件加载到python类中?

Bre*_*bel 18 python user-interface qt pyqt pyside

我已经使用了PyQt很长一段时间,而且在我使用它的整个过程中,有一个非常一致的编程模式.

  1. 使用Qt Designer创建.ui文件.
  2. 创建一个与您在.ui文件中创建的窗口小部件类型相同的python类.
  3. 初始化python类时,使用uic将.ui文件动态加载到类中.

有没有办法在PySide中做类似的事情?我已经阅读了文档和示例,我能找到的最接近的东西是一个计算器示例,它将.ui文件预渲染为python代码,这是在PyQt中执行它的超级老方法(为什么要将它烘焙到python什么时候你可以解析ui?)

Cha*_*tha 23

我正在用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)
Run Code Online (Sandbox Code Playgroud)

当您实例化MyMainWindow时,它将具有您使用Qt Designer设计的UI.

如果您还需要使用自定义小部件(Qt Designer中的"提升到"),请参阅以下答案:https://stackoverflow.com/a/14877624/532513