wxPython GUI开发

本文介绍了创建wxPython程序的基本步骤,包括导入wxPython包、子类化wxPython应用程序类、定义初始化方法、创建应用程序实例及进入主事件循环。

创建一个最小的空的wxPython程序:

import wx

class App(wx.App):	

    def OnInit(self):
        frame = wx.Frame(parent=None, title='Bare')
        frame.Show()
        return True

app = App()
app.MainLoop()

上面的代码的任何一行都不能少,否则将不能工作。这个基本的wxPython程序说明了开发任一wxPython程序所必须的五个基本步骤:

  1. 导入必须的wxPython

  2. 子类化wxPython应用程序类

  3. 定义一个应用程序的初始化方法
  4. 创建一个应用程序类的实例
  5. 进入这个应用程序的主事件循环
一旦你导入了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可见,否则不可见。

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

注意:我们没有为我们的应用程序类定义一个__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()
一旦进入主事件循环,控制权将转交给wxPythonwxPython GUI程序主要响应用户的鼠标和键盘事件。当一个应用程序的所有框架被关闭后,这个app.MainLoop()方法将返回且程序退出。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值