Загрузка .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()
→ Ссылка