QPushButton
我在许多不同的页面和表单上有很多相同类型的按钮(源自)。我想要一个全局开关来更改实例的属性,例如启用/禁用所有。是否可以为此目标调用类方法。一个想法是保存每个新的引用(__new__
/__init__
?)保存在静态数组中,但是是否有 pythonic 和垃圾收集器兼容的方式?从根(主窗口)到最后一个角落的标准递归搜索会很糟糕。
使用:Python 3.3 + pyside + Qt4.8
QPushButton
我在许多不同的页面和表单上有很多相同类型的按钮(源自)。我想要一个全局开关来更改实例的属性,例如启用/禁用所有。是否可以为此目标调用类方法。一个想法是保存每个新的引用(__new__
/__init__
?)保存在静态数组中,但是是否有 pythonic 和垃圾收集器兼容的方式?从根(主窗口)到最后一个角落的标准递归搜索会很糟糕。
使用:Python 3.3 + pyside + Qt4.8
是的,有可能:
class MyButton(QPushButton):
BigSwitch = SomeQObjectThatDefinesTheSignal()
def __init__(self, ...):
...
BigSwitch.the_signal.connect(self.some_slot)
def some_slot(self, ...):
#handle the change of the property
@classmethod
def enable(cls):
cls.BigSwitch.the_signal.emit(...)
您也可以使用staticmethod
andMyButton.BigSwitch
代替类方法。