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 GUI开发_第1张图片

上面的代码的任何一行都不能少,否则将不能工作。这个基本的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() 方法将返回且程序退出。







你可能感兴趣的:(wxPython GUI开发)