Использование QUiLoader и UI файлов в PySide для динамического создания пользовательского интерфейса во время выполнения

Мне очень трудно подключить слоты из Python к Qt Designer UI файлам. Я просмотрел все учебники по PySide (например: http://zetcode.com/gui/pysidetutorial/eventsandsignals/)

Это довольно просто, когда вы настраиваете GUI в коде, но мы действительно хотели бы использовать Qt Designer и UI файлы.

Некоторые другие темы просто указывают на использование pyuic для преобразования .ui в .py файлы, но если это возможно, я бы очень хотел делать это во время выполнения.

Вот мой код на данный момент. Я не знаю, как соединить connectBtn с Connect в файле UI :

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")

6
задан Stan 16 December 2011 в 16:56
поделиться