wxPython学习笔记1
1. 从wxPython导入其它任何东西之前必须先导入wx,即import wx。这是因为wxPython要对别的wxpython模块执行一些初始化工作。
2.每个wxPython程序必须有一个app对象和至少一个frame对象。通常在app对象的OnInit方法中创建frame对象。一个wxPython程序可以游几个frame,其中有一个是被设计为应用程序的顶级窗口的。顶级窗口被用作为那些没有指定父窗口的对话框的默认父窗口。当所有的顶级窗口被关闭时应用程序退出。
3.调用app的MainLoop方法后将进入主事件循环,将控制权交给wxPython;如果应用程序十分简单的话,应该使用wx.PySimpleApp,而不需要自己去定制应用程序类。
4.当一个模块中的第一句是字符串的时候,这个字符串就成了该模块的文档字符串并存储在改模块的__doc__属性中;可以用moduleName.__doc__来访问该文档字符串。
5.所有的wxPython动作必须在应用程序对象的生命周期中执行,这意味着主框架对象在app对象被创建之前不能被创建;
6.所有的python程序都能够通过两种标准流来输出文本:分别是标准输出流sys.stdout和标准错误流sys.stdderr。通常,python脚本定向标准输出流到它所运行的控制台。你可以决定使用wxPython控制标准流并重定向到一个窗口。在windows下,这个重定向行为是wxPython的默认行为。
7.管理正常的关闭:由于wx.App子类的onExit()方法在最后一个窗口被关闭后且在wxPython的内在的清理过程之前被调用,可以使用OnExit方法来清理你创建的任何非wxPython资源。
8.ID号是所有窗口部件的特征,每个窗口部件都有一个窗口标识,在每个frame中,ID号必须是唯一的,但是在框架之间可以重用ID号。可以使用wx.NewId()函数让wxPython来为你创建一个不会冲突的ID。
9.在wxPython中,如果只有一个子窗口的框架被创建,那么这个子窗口被自动重新调整尺寸去填满该框架的客户区域。wxPython使用称为sizes的对象来管理子窗口的复杂布局。
10.任何wxPython对象都能产生事件,例如按钮、菜单、列表框。
11.事件绑定期(event binder):一个封装了特定窗口部件,特定事件类型和一个事件处理器的wxPython对象。为了被调用,所有事件处理器必须用一个事件绑定器注册。
12.wx.EvtHandler是所有可显示对象的父类。
13.Skip()方法在事件实例中设置一个标记,在事件处理器方法完成后,wxPython检查这个标记,如果确定Skip被调用,则事件将被继续处理。
14.如果当前对象没有一个关于事件的处理器,或如果处理器调用了Skip(),wxPython将决定是否这个事件将沿容器级向上展开;如果决定不,那么在wx.App实例中再找一次处理器,然后停止;如果偶决定是,则事件处沿该窗口的容器级向上搜索,直到发现适当的绑定,或到达顶层框架对象。默认情况,只有wx.CommandEvent及其子类的实例向上展开到容器级。
15.所有的wxPython事件是wx.Event的子类。低级的事件,比如鼠标敲击,被用来简历高级的事件,如按钮敲击或菜单选择。自定义事件是类wx.PyEvent的子类,自定义的命令事件是类wx.PyCommandEvent的子类。