天天看点

复盘1____wxPython底层知识构架

复盘1____wxPython底层知识构架

    • wxPython必须的5个步骤
    • 基本的wxPython应用架构
    • 什么是事件驱动编程
    • wxPython如何处理事件
    • 重构代码的重要原则

wxPython必须的5个步骤

  1. 导入必须的wxPython包
  2. 子类化wxPython应用程序类
  3. 定义一个应用程序的初始化方法
  4. 创建一个应用程序类的实例
  5. 进入这个硬功程序的主时间循环
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应用架构

应用程序对象管理主事件循环。

顶层窗口通常管理最重要的数据,控制并显示给用户。

复盘1____wxPython底层知识构架

这个应用程序拥有顶层窗口和主事件循环。顶层窗口管理其窗口中的组件和其它的你分配给它的数据对象。窗口和它的组件的触发事件基于用户的动作,并接受事件通知以便改变显示。

什么是事件驱动编程

用户触发,大部分的时间程序什么都不做。被动等待式。

wxPython如何处理事件

复盘1____wxPython底层知识构架

事件处理过程开始于触发时间的对象。通常,wxPython首先在触发对象中查找匹配事件类型的处理器函数。如果找到,则相应的方法被执行。否则,wxPython将检查事件是否传送到了上一级的容器。如果是的话,父窗口部件将被检查,这样一级一级向上寻找,直到wxPython找到了一个处理器函数或到达了顶级窗口。如果事件没有传播,在处理过程完成之前,wxPython仍将为了处理器函数而检查应用程序对象。

wx.Event 的Skip()方法来显式地请求进一步处理。

默认情况下,只有wx.CommandEvent及其子类的实例向上展开至容器级。

重构代码的重要原则

  • 不要重复:你应该避免有多个相同功能的段。当这个功能需要改变时,这维护起来会很头痛。
  • 一次做一件事情:一个方法应该并且只做一件事情。各自的事件应该在各自的方法中。方法应该保持短小。
  • 嵌套的层数要少:尽量使嵌套代码不多于2层或3曾。对于一个单独的方法,深的嵌套也是一个好的选择。
  • 避免字面意义上的字符串和数字:字面意义上的字符串和数字应使其出现在代码中的次数最小化。一个好的方法是,把它们从你的代码的主要部分中分离出来,并存储于一个列表或字典中。