在前面的学习笔记中,我们已经学习过了wx.Frame 初始化函数的几个参数,现在来回顾一下,分别是: 第一个参数 parent:父窗体的引用,如果没有则传入None; 第二个参数 id:窗口的 id 号码,一般传入wx.ID_ANY; 第三个参数 title:窗体的标题; 第四个参数 pos:窗体的位置; 第五个参数 size:窗体的大小;
下面我们学习 第六个参数 style:窗体的样式; |
窗体的样式默认值为 wx.DEFAULT_FRAME_STYLE
wx.DEFAULT_FRAME_STYLE 其实是一些列值的组合,即
wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN
这些值表示窗体有最大化按钮、最小化按钮、可改变大小的边框、系统菜单、标题栏、关闭按钮等等
如果我们不使用默认的样式,就可以通过自己组合来改变窗体的样式。
下面的代码分别创建了六种不同样式的窗体,在代码中有详细地注释:
代码
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,_title,_style):
13 #只有一个关闭按钮,不能改变大小
14 wx.Frame.__init__(self,parent=None,id=wx.ID_ANY,title=_title,size=(190,100),style=_style)
15 #显示
16 self.Show()
17
18 if __name__=='__main__':
19 #初始化程序
20 app=wx.App()
21
22 #默认样式
23 # wx.DEFAULT_FRAME_STYLE = wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN
24 f1=MyFrame("#1",wx.DEFAULT_FRAME_STYLE)
25 f1.MoveXY(100,100)
26
27 # 只有客户区,没有标题栏,也不能改变大小
28 f2=MyFrame("#2",0)
29 f2.MoveXY(300,100)
30
31 # 只有一个光秃秃的标题栏
32 f3=MyFrame("#3",wx.CAPTION)
33 f3.MoveXY(500,100)
34
35 # 标题栏、系统菜单,只有移动功能
36 f4=MyFrame("#4",wx.CAPTION | wx.SYSTEM_MENU )
37 f4.MoveXY(700,100)
38
39 # 标题栏、可以改变大小
40 f5=MyFrame("#5",wx.CAPTION | wx.RESIZE_BORDER)
41 f5.MoveXY(900,100)
42
43 # 标题栏、可以改变大小
44 f6=MyFrame("#6",wx.CAPTION | wx.SYSTEM_MENU | wx.MINIMIZE_BOX | wx.CLOSE_BOX)
45 f6.MoveXY(1100,100)
46
47 #开始消息循环
48 app.MainLoop()
49
2 # -*- coding: GBK -*-
3
4 import wx
5
6 """
7 设定窗体样式
8 """
9
10 class MyFrame(wx.Frame):
11
12 def __init__(self,_title,_style):
13 #只有一个关闭按钮,不能改变大小
14 wx.Frame.__init__(self,parent=None,id=wx.ID_ANY,title=_title,size=(190,100),style=_style)
15 #显示
16 self.Show()
17
18 if __name__=='__main__':
19 #初始化程序
20 app=wx.App()
21
22 #默认样式
23 # wx.DEFAULT_FRAME_STYLE = wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN
24 f1=MyFrame("#1",wx.DEFAULT_FRAME_STYLE)
25 f1.MoveXY(100,100)
26
27 # 只有客户区,没有标题栏,也不能改变大小
28 f2=MyFrame("#2",0)
29 f2.MoveXY(300,100)
30
31 # 只有一个光秃秃的标题栏
32 f3=MyFrame("#3",wx.CAPTION)
33 f3.MoveXY(500,100)
34
35 # 标题栏、系统菜单,只有移动功能
36 f4=MyFrame("#4",wx.CAPTION | wx.SYSTEM_MENU )
37 f4.MoveXY(700,100)
38
39 # 标题栏、可以改变大小
40 f5=MyFrame("#5",wx.CAPTION | wx.RESIZE_BORDER)
41 f5.MoveXY(900,100)
42
43 # 标题栏、可以改变大小
44 f6=MyFrame("#6",wx.CAPTION | wx.SYSTEM_MENU | wx.MINIMIZE_BOX | wx.CLOSE_BOX)
45 f6.MoveXY(1100,100)
46
47 #开始消息循环
48 app.MainLoop()
49
//==========================================