【问题标题】:Using QUiLoader and UI files in PySide to dynamically create user interface at run-time在 PySide 中使用 QUiLoader 和 UI 文件在运行时动态创建用户界面
【发布时间】:2016-01-28 19:08:29
【问题描述】:

我真的很难将插槽从 Python 连接到 Qt Designer UI 文件。 我已经阅读了PySide 上的所有教程(例如:http://zetcode.com/gui/pysidetutorial/eventsandsignals/

在代码中设置 GUI 非常简单,但我们真的很想使用 Qt Designer 和 UI 文件。

其他一些线程只是指向使用pyuic.ui 转换为.py 文件,但如果可能的话,我真的很想在运行时这样做。

到目前为止,这是我的代码。 我不知道如何将connectBtn 连接到 UI 文件中的Connect

def initUI(self):      

    loader = QUiLoader()
    file = QFile("designer_test.ui")
    file.open(QFile.ReadOnly)
    myWidget = loader.load(file, self)
    #print(dir(myWidget))
    file.close()

    layout = QtGui.QVBoxLayout()
    layout.addWidget(myWidget)
    self.setLayout(layout)

    connectBtn = QtGui.QPushButton("Connect", self)

    connectBtn.clicked.connect(self.connectClicked)

    myWidget.setWindowTitle('Window')
    myWidget.show()

def connectClicked(self):
    print("works")

【问题讨论】:

    标签: python pyside qt-designer


    【解决方案1】:

    您是否查看过此页面:Using a Designer UI File in Your Application

    它适用于 C++,但我认为这些概念与您在 python 中尝试做的相同。

    根据该页面,要获取由 Ui 文件创建的小部件,您需要调用 findChild()。

    另外,this question

    【讨论】:

      【解决方案2】:

      我制作了这个auto-connector 来帮助我解决这个问题...请看一下。

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
      猜你喜欢
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多