Python, обновите строку состояния() из внешнего класса

#python-3.x

Вопрос:

У меня есть main.py файл, содержащий мой основной код.

У меня есть серия занятий в другом preset.py файл: Job и Preset , Preset расширяется/наследуется от Job .

Когда я запускаю main.py такие вещи, как self.statusBar().showMessage("message") доступны.

Однако, когда выполняется метод Presets , я хотел бы изменить — например — self.statusBar().showMessage("message")

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

В main.py окне класс настроен следующим образом:

 from preset import Job, Preset

class Window(QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.statusBar().showMessage("message")
        ...

    def run(self):
        process = Presets(root_path=root_path, job_number=job_number, site_code=site_code, preset=preset)
 

В ‘preset.py`:

 class Job:
    def __init__(self, root_path, job_number, site_code):
    ...


class Presets(Job):
    def __init__(self, root_path, job_number, site_code, preset):
        super().__init__(root_path, job_number, site_code)
    ...

    def do_some_thing(self):
        self.statusBar().showMessage("message2")
 

В последней строке self.statusBar().showMessage("message2") , очевидно, не будет работать, так как она должна подключаться к Window(QMainWindow) в main.py

Комментарии:

1. Ваш Window.run метод определяет process , как это должно быть self.process . Это сделает Presets методы доступными для Window

2. хорошо, так self.process установлено в main.py. Но в preset.py том, как мне изменить self.statusBar().showMessage("message") вход main.py ?