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

在 Python 子类的构造函数中可以先调用父类的构造函数完成一些初始化动作,类似 Java 的 super() 或者 C# 的 base() 的作用,但是有一点不同之处:Python 类的所有成员函数的第一个参数都是 self ,即指向自己的一个对象实例,即:如果你是用类的对象实例调用成员函数,这个参数可以省略,因为 Python 知道 self 就是指向发出调用动作的那个对象;但是在类内部成员函数之间相互调用的时候,这个参数必须给出,否则就会出现错误。

所以,我们在调用父类的初始化函数 __init()__ 的时候:

第一个参数传入的是 self ,即指向自己的一个对象实例;

第二个参数是我们以前说过的父窗体的引用(可以为 None ,代表没有父窗体);

第三个参数一个窗体编号,一般情况下我们都用 wx.ID_ANY ,即 -1 ,代表由系统自动分配一个编号;

第四个参数就是窗体标题了

 

这样,我们就在窗体初始化的时候给窗体设置了一个标题。

 

另外还有一种方法是在窗体对象创建了以后改变窗体的标题,是利用 wx.Frame 的  SetTitle() 方法。

 

下面的代码创建了两个窗体,第一个窗体显示了初始化时候的标题内容,第二个窗体在创建以后利用 SetTitle() 方法改变了标题内容。

 

代码如下: 

 

 1 #!/usr/bin/python
 2 # -*- coding: GBK -*-
 3 
 4 import wx
 5 
 6 """
 7 设置窗体标题
 8 """
 9 
10 class MyFrame(wx.Frame):
11     
12     def __init__(self):
13         wx.Frame.__init__(self,None,wx.ID_ANY,"Hello wxPython")
14         #居中
15         self.Center()
16         #显示
17         self.Show()
18 
19 if __name__=='__main__':
20     #初始化程序
21     app=wx.App()
22     #创建窗体 1
23     MyFrame()
24     
25     #创建窗体 2
26     frm2=MyFrame()
27     frm2.SetTitle("世界你好")
28     
29     #开始消息循环
30     app.MainLoop()

 

 

//==========================================
posted on 2010-11-29 22:17  左洸  阅读(999)  评论(1编辑  收藏  举报