Загрузка файлов .ui в QtDesigner в PySide Я ищу простой пример того, как напрямую загружать созданный QtDesigner файл .ui в приложение Python. Я просто хотел бы избежать использования pyuic4. Ответ 1 PySide, в отличие от PyQt, внедрил класс QUiLoader для прямого чтения в .ui файлах. Из связанной документации loader = QUiLoader() file = QFile(":/forms/myform.ui") file.open(QFile.ReadOnly) myWidget = loader.load(file, self) file.close() Ответ 2 Для полных noobs в файлах PySide и .ui вот полный пример: from PySide import QtCore, QtGui, QtUiTools def loadUiWidget(uifilename, parent=None): loader = QtUiTools.QUiLoader() uifile = QtCore.QFile(uifilename) uifile.open(QtCore.QFile.ReadOnly) ui = loader.load(uifile, parent) uifile.close() return ui if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) MainWindow = loadUiWidget(":/forms/myform.ui") MainWindow.show() sys.exit(app.exec_()) Ответ 3 Другой вариант, основанный на более короткой директиве нагрузки, найден на https://askubuntu.com/info/140740/should-i-use-pyqt-or-pyside-for-a-new-qt-project#comment248297_141641. (В принципе, вы можете избежать всех открытий и закрытий файлов.) import sys from PySide import QtUiTools from PySide.QtGui import * app = QApplication(sys.argv) window = QtUiTools.QUiLoader().load("filename.ui") window.show() sys.exit(app.exec_()) Примечания: filename.ui должен находиться в той же папке, что и ваш .py файл. Вы можете использовать if __name__ == "__main__":, как указано в ответе BarryPye
Ответ 1 PySide, в отличие от PyQt, внедрил класс QUiLoader для прямого чтения в .ui файлах. Из связанной документации loader = QUiLoader() file = QFile(":/forms/myform.ui") file.open(QFile.ReadOnly) myWidget = loader.load(file, self) file.close()
Ответ 2 Для полных noobs в файлах PySide и .ui вот полный пример: from PySide import QtCore, QtGui, QtUiTools def loadUiWidget(uifilename, parent=None): loader = QtUiTools.QUiLoader() uifile = QtCore.QFile(uifilename) uifile.open(QtCore.QFile.ReadOnly) ui = loader.load(uifile, parent) uifile.close() return ui if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) MainWindow = loadUiWidget(":/forms/myform.ui") MainWindow.show() sys.exit(app.exec_())
Ответ 3 Другой вариант, основанный на более короткой директиве нагрузки, найден на https://askubuntu.com/info/140740/should-i-use-pyqt-or-pyside-for-a-new-qt-project#comment248297_141641. (В принципе, вы можете избежать всех открытий и закрытий файлов.) import sys from PySide import QtUiTools from PySide.QtGui import * app = QApplication(sys.argv) window = QtUiTools.QUiLoader().load("filename.ui") window.show() sys.exit(app.exec_()) Примечания: filename.ui должен находиться в той же папке, что и ваш .py файл. Вы можете использовать if __name__ == "__main__":, как указано в ответе BarryPye