zoukankan      html  css  js  c++  java
  • wxpython学习:创建最小的空的wxPython程序

    import wx #1
    class App(wx.App): #2
    def OnInit(self): #3
    frame = wx.Frame(parent=None, title=’Bare’)
    frame.Show()
    return True
    app = App() #4
    app.MainLoop() #5

    上面的代码的任何一行都不能少,否则将不能工作。这个基本的wxPython
    程序说明了开发任一wxPython程序所必须的五个基本步骤:
    1、导入必须的wxPython包
    2、子类化wxPython应用程序类
    3、定义一个应用程序的初始化方法
    4、创建一个应用程序类的实例
    5、进入这个应用程序的主事件循环

    1.2.1 导入wxPython

    import wx

    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()方法将返回且程序退出。

  • 相关阅读:
    在纪念中国人民抗日战争暨世界反法西斯战争胜利70周年大会上的讲话
    ConcurrentHashMap 的实现原理
    聊聊并发(四)——深入分析ConcurrentHashMap
    Mybatis 动态 SQL
    Mybatis Mapper XML 文件
    MySQL的语句执行顺序
    Java 集合细节(二):asList 的缺陷
    java中 列表,集合,数组之间的转换
    将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
    把Java数组转换为List时的注意事项
  • 原文地址:https://www.cnblogs.com/yanghonker/p/12377761.html
Copyright © 2011-2022 走看看