wxWidgets(wxPython)事件驱动概缆

wxWidgets(wxPython)是优秀的GUI开发架构。

对于GUI来说,它注重于界面的交互,于此流行的架构都是基于消息的事件驱动(message-based event-driven),例如MFC、VCL等。

它们的核心思想都是以所谓的控件为界面元素,各个控件都有各自特有的事件,而事件的处理则由事件处理器来完成,即所谓的event handler,在大多数流行架构中,evnet handler毫无例外的体现为该控件的parent window的某个特定形式的method,在wxWidgets中,我们可以自定义event handler。我们可以将特定控件的特定事件绑定到特定的事件处理器,以便响应该控件的事件,实现与用户的交互。

wxWidgets控件的event如果被绑定到多个event handler, 同时对该evnet实行了Skip,则该事件可以对被一路传递,被多个handler处理,这符合了事件的路由传递规则, 再此我们可以看到Observer的身影, 其实大多数操作系统, 基于消息的事件驱动都借助了Observer模式, 实现的差别只在于Observer的推模式还是拉模式。