Как импортировать главное окно (файл.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
файл.