wxPython GUI开发

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







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值