复盘1____wxPython底层知识构架
-
- wxPython必须的5个步骤
- 基本的wxPython应用架构
- 什么是事件驱动编程
- wxPython如何处理事件
- 重构代码的重要原则
wxPython必须的5个步骤
- 导入必须的wxPython包
- 子类化wxPython应用程序类
- 定义一个应用程序的初始化方法
- 创建一个应用程序类的实例
- 进入这个硬功程序的主时间循环
import wx #1
class App(wx.App): #2
def OnInit(self): #3
frame = wx.Frame(parent=None, title="bare")
frame.Show()
return True
app = App() #4
app.MainLoop() #5
基本的wxPython应用架构
应用程序对象管理主事件循环。
顶层窗口通常管理最重要的数据,控制并显示给用户。

这个应用程序拥有顶层窗口和主事件循环。顶层窗口管理其窗口中的组件和其它的你分配给它的数据对象。窗口和它的组件的触发事件基于用户的动作,并接受事件通知以便改变显示。
什么是事件驱动编程
用户触发,大部分的时间程序什么都不做。被动等待式。
wxPython如何处理事件
事件处理过程开始于触发时间的对象。通常,wxPython首先在触发对象中查找匹配事件类型的处理器函数。如果找到,则相应的方法被执行。否则,wxPython将检查事件是否传送到了上一级的容器。如果是的话,父窗口部件将被检查,这样一级一级向上寻找,直到wxPython找到了一个处理器函数或到达了顶级窗口。如果事件没有传播,在处理过程完成之前,wxPython仍将为了处理器函数而检查应用程序对象。
wx.Event 的Skip()方法来显式地请求进一步处理。
默认情况下,只有wx.CommandEvent及其子类的实例向上展开至容器级。
重构代码的重要原则
- 不要重复:你应该避免有多个相同功能的段。当这个功能需要改变时,这维护起来会很头痛。
- 一次做一件事情:一个方法应该并且只做一件事情。各自的事件应该在各自的方法中。方法应该保持短小。
- 嵌套的层数要少:尽量使嵌套代码不多于2层或3曾。对于一个单独的方法,深的嵌套也是一个好的选择。
- 避免字面意义上的字符串和数字:字面意义上的字符串和数字应使其出现在代码中的次数最小化。一个好的方法是,把它们从你的代码的主要部分中分离出来,并存储于一个列表或字典中。