wxpython学习笔记(一)

环境:

操作系统:win7 SP1

python:2.7.11

wxpython:3.0.2.0


学习第一天,先搞个Hello world

先附上源码再解释:

#!/usr/bin/python
import wx
class MyApp(wx.App):
def OnInit(self):
wx.MessageBox("Hello world,wxpthon","wxapp")
return True



if __name__ == '__main__':
App=MyApp(False)
App.MainLoop()


import wx: 导入wxpython库

class MyApp(wx.App):定义自己的App类,继承wx.App
def OnInit(self): 复写OnInit方法
wx.MessageBox("Hello world,wxpthon","wxapp"): 弹出提示框,"Hello world,wxpthon"为内容,wxapp为标题
return True:OnInit必须返回为True,才能完成初始化继续运行
App.MainLoop():MainLoop会一直运行直到窗口关闭

显示效果如下:



第2个程序,不再是弹出messageBox,而是使用Frame

#!/usr/bin/python
# -*- coding:utf-8 -*-
import wx
class MyFrame(wx.Frame):
 def __init__(self,parent,title=""):
  super(MyFrame,self).__init__(parent,title=title)
  self.SetIcon(wx.Icon("1.jpg"))
  self.Panel=wx.Panel(self)
  return True

class MyApp(wx.App):
 def OnInit(self):
  self.frame=MyFrame(None,title="我的主程序")
  self.frame.Show()
  return True

if __name__ == '__main__':
App=MyApp(False)
App.MainLoop()

这个程序先定义了一个MyFrame继承自wx.Frame,
__init__函数使用了父类的__init__方法
然后为框架设置了一个图片,要保证图片1.jpg与源码放在同一个目录下
再为程序设置了一个Panel,在这段代码中没什么作用,但是其它用户交互都要在panel上

再定义了一个App类,OnInit中调用了创建了MyFrame实例,
再后来就是设置框架可见,返回True完成初始化。

后面的跟上个程序一样就不多说了。
程序结果显示如下:


写第二个程序花了我不少时间,
遇到的第一个问题是不能用中文,上网查是没使用utf-8格式,在文件头加上# -×- coding:utf-8 -*-解决
遇到的第二个问题是对继承父类方法不熟悉,这个python2跟python3是有区别的,python2的使用方法不太好理解
遇到的第三个问题是函数的大小写问题,后来发现wx后的首字母都是大写。

通过这两个程序,了解了一个简单程序的调度过程一般分成3个步骤
1、创建自定义App类(父类为wx.App)
2、复写OnInit方法(注意一定要return True
3、实例化自定义的App
4、调度App的MainLoop



猜你喜欢

转载自blog.csdn.net/eagle1024/article/details/51501532
今日推荐