使用PySide中的QUiLoader和UI文件在运行时动态创建用户界面

时间:2011-12-13 16:29:33

标签: python pyside qt-designer

我真的很难连接从PythonQt 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")

2 个答案:

答案 0 :(得分:3)

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

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

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

另外,this question

答案 1 :(得分:0)

我已经做了auto-connector来帮助我...请看看它。