在前面的学习笔记中,我们已经学习过了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
//==========================================