Как импортировать главное окно (файл.ui), используя PySide

Я делаю проект Python и проектирую его интерфейс, используя PySide. Проблема в том, как я могу импортировать главное окно (файл.ui) из Qt Designer, используя PySide. Мой класс унаследован от QtGui.QMainWindow.

Спасибо за ваш ответ. ^^

2 ответа

Решение

Допустим, объект верхнего уровня в Qt Designer назван MainWindow,

Когда вы используете pyside-uic чтобы сгенерировать модуль GUI, он создаст класс с именем Ui_MainWindow, Именно этот класс вам необходимо импортировать в основное приложение. Импортированный класс имеет setupUi метод, который используется для внедрения GUI в экземпляр класса верхнего уровня из Qt Designer. Таким образом, основной код для этого должен выглядеть примерно так:

from PySide import QtCore, QtGui
from mainwindow import Ui_MainWindow

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow.setupUi(self)

Имея это в виду, вы можете получить доступ к виджетам из Qt Designer следующим образом:

       # connect a button to its handler
       self.ui.pushButton.clicked.connect(self.handleButtonClicked)

Для запуска приложения вы можете сделать:

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

Вам нужно будет использовать класс QUILoader.

А именно, вы будете использовать метод "загрузки", который описан здесь.

Вы можете передать в качестве первого аргумента подкласс QIODevice, например, экземпляр QFile, в котором вы открываете .ui файл.

Другие вопросы по тегам