我的理解是,在OSX中的wxPython中,⌘+ w 支持关闭wx.Window对象。为了添加它,我必须绑定到wx.EVT_KEY_DOWN,明确检查event.MetaDown()
和event.KeyCode == 'W'
。
在我的应用中,我需要让所有窗口和对话框都支持这一点。我仍然在布局我的GUI,但我开始思考,我想知道将这种支持轻松添加到现有类的最佳方法是什么。我尝试了多重继承,但它似乎没有工作(我的事件处理程序从未被调用过)。
我想的可能是类装饰器,但由于python的动态特性,这是将在运行时添加的功能。所以我有点难过。
PS:我知道'最好'是主观的,但我老老实实地在这里寻找任何可能有用的东西,而不是过多的代码。答案 0 :(得分:0)
我想的可能是一堂课 装饰者,但这是功能 因为将在运行时添加 python的动态特性。
我不明白为什么这会让你“有点难过”。类装饰器在class
语句结束后执行 - 是的,那是“在运行时”,但clqss
语句本身也是如此,其中的所有def
语句都是它的方法,等等。当你实例化这样装饰的任何类时,装饰器将会运行,因此你实例化的类将被装饰器的代码相应地修改。能否举一个小例子说明为什么这对你不起作用?