【问题标题】:apply changes to running instance of a class from another class将更改应用于另一个类的正在运行的类实例
【发布时间】:2020-10-25 07:09:21
【问题描述】:

几周前,我不得不大幅简化程序,因为我找不到这个可能很简单的问题的解决方案。 现在我又遇到了同样的问题,希望有人可以帮助我解决它。

我正在使用 PyQt5 并在我的主类 Class_One 之外启动了一个 QWidget,然后我使用以下几行打开了第二个类 Class_Two

def on_create_search(self):
    self.search_form = Class_Two()
    self.search_form.show() 

Class_Two 中,我将更改保存到 JSON 文件,这也应该影响字典和来自 Class_One 的可见 QTreeWidget

所以我想做的是,在Class_One 中执行一个由Class_Two 触发的方法,就像从Class_One 的运行实例中调用它一样。 被调用的方法应该读入 JSON 文件,并将更改应用到 Class_One 正在运行的实例的数据和 GUI。

Class_One 的另一个实例调用这样的方法并没有帮助我,因为更改必须应用于我正在运行的Class_One 类实例。 也许有更好的方法,所以我愿意接受任何建议。

【问题讨论】:

    标签: python class methods call


    【解决方案1】:

    使用回调。

    class Class_One:
        def callback(self, arg1, arg2):
            # code you want
    
        def on_create_search(self):
            self.search_form = Class_Two()
            self.search_form.show(self.callback)
    
    class Class_two:
        def show(self, callback):
            # original code
            callback(arg1, arg2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 2022-10-25
      • 2021-08-27
      • 2019-12-12
      • 1970-01-01
      相关资源
      最近更新 更多