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

Python 在PySide中使用QUiLoader和UI文件在运行时动态创建用户界面,python,pyside,qt-designer,Python,Pyside,Qt Designer,我真的很难将插槽从Python连接到Qt设计器UI文件。 我已经阅读了在PySide上可以找到的所有教程(例如:) 在代码中设置GUI非常容易,但我们确实希望使用Qt设计器和UI文件 其他一些线程只是指向使用pyuic将.ui转换为.py文件,但是如果可能的话,我真的希望在运行时这样做 这是到目前为止我的代码。 我不知道如何将connectBtn连接到UI文件中的connect: def initUI(self): loader = QUiLoader() file

我真的很难将插槽从
Python
连接到
Qt设计器
UI
文件。 我已经阅读了在PySide上可以找到的所有教程(例如:)

在代码中设置GUI非常容易,但我们确实希望使用Qt设计器和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")

您是否已查看此页面:

是C++,但我认为这些概念和你在Python中所做的一样。 根据该页面,要获取由Ui文件创建的小部件,需要调用findChild()


还有,.

我做这个是为了帮我解决这个问题。。。请看一下。

虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。