wxpython应用程序对象与顶级窗口_wxPython 基础 | 学步园

wxPython应用程序的两个主要部分是:应用程序对象和顶级Window对象

应用程序对应通常指wx.App的子类。

Window对象通查功能指Frame或者Dialog。

创建wx.App子类

1 定义子类

2 在子类定义中重写OnInit()方法

3 在应用程序main方法中创建这个类的一个实例

4 调用应用程序实例的MainLoop方法,这个方法将控制转交给wxPython

OnInit方法在事件循环开始之前调用,这个方法没有参数,只是返回Boolean值来暗示程序是否应该继续运行。通常应该返回True,返回False可以用来处理初始化过程中的重要错误。由于OnInit方法在父类的__init__方法中调用,所以如果需要覆盖__init__方法,那么wx.App.__init__(self) 必须被首先调用。

通常情况下,在OnInit方法内部会创建一个Frame对象,并且调用Frame对象的Show方法。也可以使用SetTopWindow方法设定为顶级Window

在应用程序只有一个Frame的时候也可以不使用wx.App的子类,转而使用wx.PySimpleApp(),只不过此时App的创建要在Frame之前。

参看一下代码:

if __name__ == '__main__':

app = wx.PySimpleApp()

frame = MyNewFrame(None)

frame.Show(True)

app.MainLoop()

PySimpleApp的内容如下:

class PySimpleApp(wx.App):

def __init__(self, redirect=False, filename=None,

useBestVisual=False, clearSigInt=True):

wx.App.__init__(self, redirect, filename, useBestVisual,

clearSigInt)

def OnInit(self):

return True

只应该在应用程序非常简单,不需要任何其他的全局参数的时候使用wx.PySimpleApp

应用程序对象的生命周期:

wxPython应用程序对象的声明周期始于应用程序实例的创建,终于最后一个应用程序窗口关闭。

这意味这在wx.App创建之前不能创建Frame的实例。

wxPython应用程序的生命周期模型如下:

%E5%BF%AB%E7%85%A7%202009-08-15%2017-41-29.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值