有没有办法将事件绑定到Python或wxPython中的变量?像这样:
self.Bind(EVT_ONCHANGE_VAR, self.mycallback, variable_to_watch)
这将根据此变量的值显示或隐藏对话框。
谢谢!
答案 0 :(得分:3)
traits可让您在更改值时收到通知。
在您的情况下,您可以variable_to_watch
property
:
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
return self._x
@x.setter
def x(self, value):
self._x = value
self.show_hide_dialog() # or generate an event in general
# ...
答案 1 :(得分:2)
如果它是类实例的属性,则可以通过为特定属性更改时发出通知的类编写自定义__setattr__()
方法来合理地轻松完成此操作。 (您也可以使用属性,但是您必须为每个属性单独创建一个属性。)对于变量,这要困难得多; Python没有任何内置的机制来执行此操作,因此您必须绑定到跟踪挂钩并在执行每行代码后内省变量。这将显着减慢你的程序,但它可以完成。