в Python, как вызывать объекты или подключаться между подмодулями? - PullRequest
0 голосов
/ 09 апреля 2020

Каждый gui модуль собирается в main.py

Если я нажимаю кнопки в menuLv1, другие модули меняются. Например, если нажать кнопку в menuLv1, измените сообщение в статусе. Но я не знаю, как.

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

Ниже приведены ее коды

main.py

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


import pathlib
currentPath = pathlib.Path(__file__).parent.absolute()
sys.path.extend([currentPath])

import menuLv1, menuLv2, contents, status

app = QApplication([])

class MainFrame(QWidget):
    def __init__(self):
        super().__init__()
        self.etc()
        self.wrapper.addWidget(menuLv1.menuLv1())
        # menuLv2.initiation()
        # contents.initiation()
        self.wrapper.addWidget(status.statusBar())

    def etc(self):
        self.setWindowTitle('Modularized Work Automation System for Pluscare (version 0.1)')
        self.wrapper = QVBoxLayout()
        self.wrapper.setContentsMargins(0, 0, 0, 0)
        self.wrapper.setSpacing(0)
        self.setLayout(self.wrapper)


if __name__ == "__main__":
    Window = MainFrame()
    Window.setMinimumSize(800, 600)
    Window.showMaximized()

    sys.exit(app.exec_())

[модуль 1 (( menuLv1.py)]

from PyQt5.QtWidgets import *

class menuLv1(QMenuBar):
    def __init__(self):
        super().__init__()

        self.menuLv1setting = QAction("config",self)
        self.addAction(self.menuLv1setting)
        menuLv1setting.triggered.connect(lambda:menuLv2.setCurrentWidget(menuLv2setting))
        menuLv1setting.triggered.connect(lambda:statusbar.showMessage("config"))

        self.setStyleSheet("background-color: red; ")
        self.setFixedHeight(23)

[модуль 2 (status.py)]

from PyQt5.QtWidgets import *

class statusBar(QStatusBar):
    def __init__(self):
        super().__init__()
        self.setStyleSheet("background-color: green")
        self.showMessage("asdsfd")
        self.setFixedHeight(30)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...