wxPython in Action(二)

1.2.2 使用应用程序和框架工作

一旦你导入了wx模块,你就能够创建你的应用程序(application)对象和框架(frame)对象。每个wxPython程序必须有一个application对象和至少一个frame对象。application对象必须是wx.App的一个实例或你在OnInit()方法中定义的一个子类的一个实例。当你的应用程序启动的时候,OnInit()方法将被wx.App父类调用。

子类化wxPython application类

下面的代码演示了如何定义我们的wx.App的子类:

class MyApp(wx.App): 

    def OnInit(self): 
        frame = wx.Frame(parent=None, id=-1, title="Bare")
        frame.Show() 
        return True 


上面我们定义了一个名为MyApp的子类。我们通常在OnInit()方法中创建frame对象。上面的wx.Frame接受三个参数,仅第一个是必须的,其余的都有默认值。
调用Show()方法使frame可见,否则不可见。我们可以通过给Show()一个布尔值参数来设定frame的可见性:
frame.Show(False)  # 使框架不可见. 
frame.Show(True)   # True是默认值,使框架可见. 
frame.Hide()       # 等同于frame.Show(False)

定义一个应用程序的初始化方法

注意:我们没有为我们的应用程序类定义一个__init__()方法。在Python中,这就意味着父方法wx.App.__init()__将在对象创建时被自动调用。这是一个好的事情。如果你定义你自己的__init__()方法,不要忘了调用其基类的__init()__方法,示例如下:

class App(wx.App): 
    def __init__(self): 
        
        wx.App.__init__(self)
 

如果你忘了这样做,wxPython不将被初始化并且你的OnInit()方法也不将得到调用。

创建一个应用程序实例并进入它的主事件循环

这步是创建wx.App子类的实例,并调用它的MainLoop()方法:

app = App() 
app.MainLoop()


一旦进入主事件循环,控制权将转交给wxPython。wxPython GUI程序主要响应用户的鼠标和键盘事件。当一个应用程序的所有框架被关闭后,这个app.MainLoop()方法将返回且程序退出。

 

文章来源:www.pythontik.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值