Как открыть другие окна пользовательского интерфейса из того же класса? - PullRequest
0 голосов

Мне нужно открыть другое окно (окна конфигурации) в моем приложении. Каждое окно - это отдельный класс. Я хотел бы знать, могу ли я сгруппировать все в одном классе и открыть окно через функцию.

from PyQt5 import QtWidgets, uic
import sys

class OpenMyApp(QtWidgets.QMainWindow):
    # My App
    pathUi = 'ui/interface.ui'
    pathStylesheet = 'ui/stylesheet.qss'

    def __init__(self):
        super(OpenMyApp, self).__init__()
        self.init_interface()

    def init_interface(self):
        self.ui = uic.loadUi(self.pathUi, self)
        style_app = self.pathStylesheet
        with open(style_app, "r") as fh:
            self.setStyleSheet(fh.read())
        self.ui.btn_openConfigApp.clicked.connect(self.open_config)

    def open_config(self):
       pass


class OpenMyConfigApp(QtWidgets.QMainWindow):
    # My Config App
    pathUi = 'ui/config-interface.ui'
    pathStylesheet = 'ui/stylesheet.qss'

    def __init__(self):
        super(OpenMyConfigApp, self).__init__()
        self.init_interface()

    def init_interface(self):
        self.ui = uic.loadUi(self.pathUi, self)
        style_app = self.pathStylesheet
        with open(style_app, "r") as fh:
            self.setStyleSheet(fh.read())


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = OpenMyApp()
    window.show()
    sys.exit(app.exec_())

enter image description here

...