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应用程序的生命周期模型如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值