在 Python 子类的构造函数中可以先调用父类的构造函数完成一些初始化动作,类似 Java 的 super() 或者 C# 的 base() 的作用,但是有一点不同之处:Python 类的所有成员函数的第一个参数都是 self ,即指向自己的一个对象实例,即:如果你是用类的对象实例调用成员函数,这个参数可以省略,因为 Python 知道 self 就是指向发出调用动作的那个对象;但是在类内部成员函数之间相互调用的时候,这个参数必须给出,否则就会出现错误。
所以,我们在调用父类的初始化函数 __init()__ 的时候:
第一个参数传入的是 self ,即指向自己的一个对象实例;
第二个参数是我们以前说过的父窗体的引用(可以为 None ,代表没有父窗体);
第三个参数一个窗体编号,一般情况下我们都用 wx.ID_ANY ,即 -1 ,代表由系统自动分配一个编号;
第四个参数是窗体标题
第五个参数传入一个坐标,代表窗体左上角的位置
第六个参数传入窗体的长度和宽度
这样,我们就在窗体初始化的时候设置了窗体的位置和大小。
如果是在窗体对象创建了以后改变窗体对象的位置和大小,则可以利用 wx.Frame 的相关方法。 有三个方法可以改变窗体对象的位置,分别是: 1、MoveXY(x,y) 方法 2、Move(point) 方法 3、SetPosition(point) 方法
另外还有两个方法可以改变窗体的大小,分别是: 1、SetDimensions(x, y, width, height)方法 2、SetSize(size) 方法 |
下面的例子中创建了两个窗体,其中一个在初始化的时候设置好了窗体的位置和大小,另外一个窗体则在窗体对象创建以后改变了窗体的位置和大小。
代码如下:
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,strTitle):
13 wx.Frame. __init__ (self,parent = None,id = wx.ID_ANY,title = strTitle ,pos = ( 100 , 100 ),size = ( 640 , 320 ))
14 # 显示
15 self.Show()
16
17 if __name__ == ' __main__ ' :
18 # 初始化程序
19 app = wx.App()
20 # 创建窗体 1
21 MyFrame( " #1 " )
22
23 # 创建窗体 2
24 frm2 = MyFrame( " #2 " )
25 frm2. MoveXY( 400 , 400 )
26 frm2. SetSize (( 320 , 640 ))
27
28
29 # 开始消息循环
30 app.MainLoop()
2 # -*- coding: GBK -*-
3
4 import wx
5
6 """
7 设定窗体的位置和大小
8 """
9
10 class MyFrame(wx.Frame):
11
12 def __init__ (self,strTitle):
13 wx.Frame. __init__ (self,parent = None,id = wx.ID_ANY,title = strTitle ,pos = ( 100 , 100 ),size = ( 640 , 320 ))
14 # 显示
15 self.Show()
16
17 if __name__ == ' __main__ ' :
18 # 初始化程序
19 app = wx.App()
20 # 创建窗体 1
21 MyFrame( " #1 " )
22
23 # 创建窗体 2
24 frm2 = MyFrame( " #2 " )
25 frm2. MoveXY( 400 , 400 )
26 frm2. SetSize (( 320 , 640 ))
27
28
29 # 开始消息循环
30 app.MainLoop()
//==========================================
本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2010/11/29/1891555.html,如需转载请自行联系原作者