首页 > 解决方案 > Python,从外部类更新 statusBar()

问题描述

我有一个包含我的主要代码的 main.py 文件。

我在另一个 preset.py 文件中有一系列类:Job并且PresetPreset扩展/继承自Job.

当我运行 main.py 之类的东西self.statusBar().showMessage("message")是可以访问的。

但是,当一个方法正在运行时,Presets我想改变 - 例如 -self.statusBar().showMessage("message")

下面是一些关键的代码片段,希望这足以解释我想要实现的目标。请注意,我正在尝试实现 QThread,因此 gui 冻结应该不是问题。

main.pyWindow 类中设置如下:

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

标签: python-3.x

解决方案


推荐阅读