因此,我有一个简单的pyside2应用程序,我想在其中使用一个按钮来更新计数器小部件。
按钮已被子类化,并且具有调用计数器小部件的增量功能的功能。
当前通话看起来像这样
self.parent().parent().parent().parent().counter_widget.increment()
这很丑。我应该如何在类层次结构中如此遥远的小部件之间进行此调用。
您可以将要引用的对象传递给另一个对象,然后直接访问该属性。如果您只是想简化语法,可以添加以下方法:
def up(self, levels):
if levels < 0:
raise ValueError('cannot go up negative levels')
obj = self
while levels > 0:
obj = obj.parent()
levels -= 1
return obj
然后代替
self.parent().parent().parent().parent().counter_widget.increment()
您可以简单地写:
self.up(4).counter_widget.increment()
我希望这会有所帮助!