wxPython编写界面程序的基本流程:

1、import wx   #导入wxPython的包

2、class App(wx.App)   #子类化一个应用程序类

3、def onInit(self)  #定义应用程序类的初始化方法

4、app = App() #实例化一个应用程序类

5、app.MainLoop()  #进入这个应用程序的主事件循环

下面是一个例子:

import wx     #——对应第一步

class App(wx.App):          #——对应第二步

def OnInit(self):    #——对应第三步

frame = wx.Frame(parent = None, id = -1, title = 'Bare')

frame.Show()    #默认参数为True,即frame.Show(True)

return True     #这里一定要写return,否则就会一闪而过;return False的话会一闪而过,然后提示退出;因此要能够自主关闭,看到程序框架的话,必须得return True

app = App()              #——对应第四步

app.MainLoop()       #——对应第五步

下面是一个实例(python基础教程第二版12章),但是不是以class的面向对象的形式来展现的,基本涵盖了一个可响应的活的应用程序的几个组成部分:

1、导入wxPython的包

2、定义一会需要用到的响应函数load和save

3、实例化一个应用程序类:如果app =wx.App()不生效或者有问题的话,可以使用app = wx.PySimpleApp()语句

4、定义frame

5、定义panel,将所需要的按钮、文本框等放到panel中

6、智能布局:使用BoxSizer() ,采用相对布局,将布局纳入到panel中

7、定义响应绑定事件(使用wxPython本身的响应函数,将具体需要操作的事件定义在事件函数中,绑定后即可通过相应操作,做出需要的响应)

8、show出Frame

9、进入app应用程序的主事件循环

 # -*-coding:gb2312-*-

 #Function:第12章-图形用户界面,写一个记事本的简化程序
#Author:LiXia
#Version:V 1.0.0.1 import wx def load(event):
file = open(filename.GetValue())
contents.SetValue(file.read())
file.close() def save(event):
file = open(filename.GetValue(), 'w')
file.write(contents.GetValue())
file.close() app = wx.App()
win = wx.Frame(None, id = -1, title = 'Simple Editor', size = (410, 335)) bkg = wx.Panel(win) loadButton = wx.Button(bkg, label = 'Open')
loadButton.Bind(wx.EVT_BUTTON, load) saveButton = wx.Button(bkg, label = 'Save')
saveButton.Bind(wx.EVT_BUTTON, save) filename = wx.TextCtrl(bkg)
contents = wx.TextCtrl(bkg, style = wx.TE_MULTILINE|wx.HSCROLL) hbox = wx.BoxSizer()
hbox.Add(filename, proportion = 1, flag = wx.EXPAND)
hbox.Add(loadButton, proportion = 0, flag = wx.LEFT, border = 5)
hbox.Add(saveButton, proportion = 0, flag = wx.LEFT, border = 5) vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox, proportion = 0, flag = wx.EXPAND|wx.ALL, border = 5)
vbox.Add(contents, proportion = 1, flag = wx.EXPAND|wx.LEFT|wx.Bottom|wx.RIGHT, border = 5) bkg.SetSizer(vbox)
win.Show() app.MainLoop()

最新文章

  1. MSP430单片机的两种SPI总线实现方式
  2. Scrum Meeting 2-20151202
  3. 学习mongo系列(二) 新建数据库,collection ,insert(),save()
  4. 为何在font-family属性中设置多个值
  5. Android判断App是否在前台运行(转)
  6. api接口通信安全性
  7. Linux下设置静态IP和获取动态IP的方法
  8. hdu 4706 Children's Day 2013年ICPC热身赛A题 模拟
  9. html js文字左右滚动插件
  10. svn to git
  11. Akka(33): Http:Marshalling,to Json
  12. spring cloud 配置zuul实用
  13. python发送短信验证码
  14. laravel session使用 转自http://blog.csdn.net/angle_hearts/article/details/53923782
  15. 1.Spring MVC详解
  16. dip vs di vs ioc
  17. bzoj 2120 数颜色 (带修莫队)
  18. LeetCode 944 Delete Columns to Make Sorted 解题报告
  19. js的原型prototype究竟是什么?
  20. PHP自学,第一阶段,基础学习

热门文章

  1. day3 python 阿狸的进阶之路
  2. SRM-相关资料路径
  3. getVisibleSize,getWinSize,getFrameSize,getViewPortRect
  4. 计算机网络协议包头赏析-TCP
  5. vue中嵌套页面(iframe)
  6. AngularJS理论知识
  7. 有关于分布式和SOA的理解
  8. 嵌入式 Web Server 温度检测系统
  9. AssetBundle Manager
  10. python网络编程之开启进程的方式