Я делаю проект Python и разрабатываю его интерфейс с помощью PySide. Проблема в том, как я могу импортировать главное окно (файл .ui) из Qt Designer с помощью PySide. Мой класс унаследован от QtGui.QMainWindow.
Спасибо за ваш ответ. ^^
Я делаю проект Python и разрабатываю его интерфейс с помощью PySide. Проблема в том, как я могу импортировать главное окно (файл .ui) из Qt Designer с помощью PySide. Мой класс унаследован от QtGui.QMainWindow.
Спасибо за ваш ответ. ^^
Допустим, объект верхнего уровня в 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
.