悄然无声的 Blog
不是我不明白,这世界变化快!

前面的笔记主要学习了 wx.Frame 的用法,在我们创建一个 Frame 的时候,总是要用到一个应用程序对象 wx.App ,每个程序中必不可少的两行代码是:

1、创建应用程序对象 wx.App()

2、开始主循环 app.MainLoop()

 

以前用 Delphi 或者 VB 的时候我们是看不到这个对象的(其实也有),我们一般都把窗体就当作了一个程序,其实窗体对象和应用程序对象还是有很大区别的,具体的区别要说起来比较复杂,简单说它主要有以下几个作用:

1、创建和管理消息循环,这个不用说了吧。

2、初始化程序进程,就是程序运行必要的一些资源。

3、缺省的事件处理

4、应用程序对象的其他一些属性的设置和读取等等 

 

下面我们看一下 wx.App 的初始化函数:

__init__(selfredirect=Falsefilename=NoneuseBestVisual=FalseclearSigInt=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()

 

//==========================================

posted on 2010-12-25 22:42  左洸  阅读(1194)  评论(1编辑  收藏  举报