前面的笔记主要学习了 wx.Frame 的用法,在我们创建一个 Frame 的时候,总是要用到一个应用程序对象 wx.App ,每个程序中必不可少的两行代码是: 1、创建应用程序对象 wx.App() 2、开始主循环 app.MainLoop()
以前用 Delphi 或者 VB 的时候我们是看不到这个对象的(其实也有),我们一般都把窗体就当作了一个程序,其实窗体对象和应用程序对象还是有很大区别的,具体的区别要说起来比较复杂,简单说它主要有以下几个作用: 1、创建和管理消息循环,这个不用说了吧。 2、初始化程序进程,就是程序运行必要的一些资源。 3、缺省的事件处理 4、应用程序对象的其他一些属性的设置和读取等等 |
下面我们看一下 wx.App 的初始化函数:
__init__(self, redirect=False, filename=None, useBestVisual=False, clearSigInt=True)
第一个参数 redirect 如果为 False ,代表所有的输出到控制台窗口;如果为 True ,则输出到另外一个专门的输出窗口;
有的时候程序有错误,输出窗口会显示一些错误信息,但是总是一闪而过,根本看不清楚,这时候,第二个参数 filename 就起作用了,在 redirect 为 True 的情况下,所有的输出到你指定的文件中,这样就不会错过任何信息了。
下面的代码显示了 wx.App 的一些简单的用法,代码如下:
代码
1
#
!/usr/bin/python
2 # -*- coding: GBK -*-
3
4 import wx
5
6 class App(wx.App):
7 def __init__ (self):
8 wx.App. __init__ (self, False )
9
10 def OnInit (self):
11 print " 程序初始化..... "
12 self.frmMain = MainFrame()
13 self.frmMain.Centre()
14 self.frmMain.Show()
15 self.SetTopWindow(self.frmMain)
16
17 print " App.GetAppName(): " + self. GetAppName ()
18 print " App.GetClassName(): " + self. GetClassName ()
19 return True
20
21 def OnExit (self):
22 print " 程序退出..... "
23
24
25 class MainFrame(wx.Frame):
26 def __init__ (self):
27 wx.Frame. __init__ (self,None,id =- 1 ,title = " Hello wxPython! " ,size = ( 250 , 150 ));
28
29
30 if __name__ == ' __main__ ' :
31 app = App()
32 app. MainLoop ()
2 # -*- coding: GBK -*-
3
4 import wx
5
6 class App(wx.App):
7 def __init__ (self):
8 wx.App. __init__ (self, False )
9
10 def OnInit (self):
11 print " 程序初始化..... "
12 self.frmMain = MainFrame()
13 self.frmMain.Centre()
14 self.frmMain.Show()
15 self.SetTopWindow(self.frmMain)
16
17 print " App.GetAppName(): " + self. GetAppName ()
18 print " App.GetClassName(): " + self. GetClassName ()
19 return True
20
21 def OnExit (self):
22 print " 程序退出..... "
23
24
25 class MainFrame(wx.Frame):
26 def __init__ (self):
27 wx.Frame. __init__ (self,None,id =- 1 ,title = " Hello wxPython! " ,size = ( 250 , 150 ));
28
29
30 if __name__ == ' __main__ ' :
31 app = App()
32 app. MainLoop ()
//==========================================
本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2010/12/25/1916977.html,如需转载请自行联系原作者