Загрузка .ui при инициализации класса QMainWindow в PySide6
Мне нужно загрузить документ .ui при инициализации QMainWindow, то что я откопал в интернете, это
ui_file = QFile("mainwindow.ui")
ui_file.open(QFile.ReadOnly)
loader = QUiLoader()
window = loader.load(ui_file)
window.show()
но это делается из вне, а мне нужно, что-то типа:
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
self.loadUi("mainwindow.ui")
#...#...
main = MainWindow()
main.show()
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Я не могу проверить как это сделать в PySide6.
Могу лишь предложить попробовать так:
import sys
from PySide6 import QtCore, QtGui, QtWidgets
from PySide6.QtUiTools import loadUiType
generated_class, base_class = loadUiType("themewidget.ui")
# the values will be:
# (<class '__main__.Ui_ThemeWidgetForm'>, <class 'PySide6.QtWidgets.QWidget'>)
class MyApp(base_class, generated_class):
def __init__(self):
super().__init__()
generated_class.__init__(self)
self.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
Автор решения: Mr.123
→ Ссылка
В итоге...
class MainWindow:
def __init__(self):
loader = QUiLoader()
self.ui = loader.load('ui/MainWindow.ui')
# ....
def show(self):
self.ui.show()