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、进入这个应用程序的主事件循环

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

最新文章

  1. 域名dns查询_查询域名dns ip地址
  2. Selenium2+python自动化12-操作元素(键盘和鼠标事件)
  3. Java中的内存分配机制
  4. 四步完成ajax的使用
  5. IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容
  6. Android Studio导入Eclipse项目
  7. asp.net后台的一些操作
  8. python socket 编程之一:编写socket的基本步骤
  9. 一个简单的shell脚本
  10. nutch2.3中nutch-site.xml设置说明
  11. gulp脚本编写方法
  12. 【Linux】CentOS 学习笔记之一(安装配制)
  13. js 检查登录态方法封装(闭包、状态缓存)
  14. 关于Linux安装Mono 3.4的bug
  15. 解决主机ping不通虚拟机
  16. keystone v3.0与2.0的区别
  17. epoll+socket的简单测试例子
  18. Windows 7 64bit上安装Oracle Database 12c [INS-30131] 错误的解决方法
  19. Mysql 批量插入数据的方法
  20. MAC升级openssl

热门文章

  1. 二叉树的非递归遍历C++实现
  2. Kafka中数据的流向
  3. IP multicast IP多播
  4. raid知识梳理及其详细介绍
  5. Jmeter 连接Redis获取数据集
  6. 【HDU - 1260 】Tickets (简单dp)
  7. JavaScript——基础知识,开始我们的js编程之旅吧!
  8. R语言入门:向量的运算
  9. ORACLE ANALYZE使用小结
  10. centos7下查看mysql配置文件适用顺序