一、框架
1、框架 wx.Frame
wx.Frame(parent, id=-1, title="", pos=wx.DefaultPosition,
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,
name="frame")
框架的形状和尺寸标记
wx.FRAME_NO_TASKBAR:一个完全标准的框架,除了一件事:在Windows系统和别的支持这个特性的系统下,它不显示在任务栏中。当最小化时,该框架图标化到桌面而非任务栏。
wx.FRAME_SHAPED:非矩形的框架。框架的确切形状使用SetShape()方法来设置。窗口的形状将在本章后面部分讨论。
wx.FRAME_TOOL_WINDOW:该框架的标题栏比标准的小些,通常用于包含多种工具按钮的辅助框架。在Windows操作系统下,工具窗口将不显示在任务栏中。
wx.ICONIZE:窗口初始时将被最小化显示。这个样式仅在Windows系统中起作用。
wx.MAXIMIZE:窗口初始时将被最大化显示(全屏)。这个样式仅在Windows系统中起作用。
wx.MINIMIZE:同wx.ICONIZE。
1、窗口漂浮行为的样式
wx.FRAME_FLOAT_ON_PARENT:框架将漂浮在其父窗口(仅其父窗口)的上面。(很明显,要使用这个样式,框架需要有一个父窗口)。其它的框架可以遮盖这个框架。
wx.STAY_ON_TOP:该框架将始终在系统中其它框架的上面。(如果你有多个框架使用了这个样式,那么它们将相互重叠,但对于系统中其它的框架,它们仍在上面。)
2、装饰窗口的样式
wx.CAPTION:给窗口一个标题栏。如果你要放置最大化框、最小化框、系统菜单和上下文帮助,那么你必须包括该样式。
wx.FRAME_EX_CONTEXTHELP:这是用于Windows操作系统的,它在标题栏的右角放置问号帮助图标。这个样式是与wx.MAXIMIZE_BOX和WX.MINIMIZE_BOX样式互斥的。它是一个扩展的样式,并且必须使用两步来创建,稍后说明。
wx.FRAME_EX_METAL:在Mac OS X上,使用这个样式的框架有一个金属质感的外观。这是一个附加样式,必须使用SetExtraStyle方法来设置。
wx.MAXIMIZE_BOX:在标题栏的标准位置放置一个最大化框。
wx.MINIMIZE_BOX:在标题栏的标准位置放置一个最小化框。
wx.CLOSE_BOX:在标题栏的标准位置放置一个关闭框。
wx.RESIZE_BORDER:给框架一个标准的可以手动调整尺寸的边框。
wx.SIMPLE_BORDER:给框架一个最简单的边框,不能调整尺寸,没有其它装饰。该样式与所有其它装饰样式是互斥的。
wx.SYSTEM_MENU:在标题栏上放置一个系统菜单。这个系统菜单的内容与你所使用的装饰样式有关。例如,如果你使用wx.MINIMIZE_BOX,那么系统菜单项就有“最小化”选项。
3、wx.Frame的公共属性
GetBackgroundColor()
SetBackgroundColor(wx.Color):背景色是框架中没有被其子窗口部件覆盖住的那些部分的颜色。你可以传递一个 wx.Color或颜色名给设置方法。任何传递给需要颜色的wxPython方法的字符串,都被解释为对函数wx.NamedColour()的调用。
GetId()
SetId(int):返回或设置窗口部件的标识符。
GetMenuBar()
SetMenuBar(wx.MenuBar):得到或设置框架当前使用的的菜单栏对象,如果没有菜单栏,则返回None。
GetPosition()
GetPositionTuple()
SetPosition(wx.Point):以一个wx.Point或Python元组的形式返回窗口左上角的x,y的位置。对于顶级窗口,该位置是相对于显示区域的坐标,对于子窗口,该位置是相对于父窗口的坐标。
GetSize()
GetSizeTuple()
SetSize(wx.Size):C++版的get*或set*方法被覆盖。默认的get*或set*使用一个wx.Size对象。 GetSizeTuple()方法以一个Python元组的形式返回尺寸。也可以参看访问该信息的另外的方法SetDimensions()。
GetTitle()
SetTitle(String):得到或设置框架标题栏的字符串。
4、wx.Frame的方法
Center(direction=wx.BOTH):框架居中(注意,非美语的拼写Centre,也被定义了的)。参数的默认值是 wx.BoTH,在此情况下,框是在两个方向都居中的。参数的值若是wx.HORIZONTAL或wx.VERTICAL,表示在水平或垂直方向居中。
Enable(enable=true):如果参数为true,则框架能够接受用户的输入。如果参数为False,则用户不能在框架中输入。相对应的方法是Disable()。
GetBestSize():对于wx.Frame,它返回框架能容纳所有子窗口的最小尺寸。
Iconize(iconize):如果参数为true,最小化该框架为一个图标(当然,具体的行为与系统有关)。如果参数为False,图标化的框架恢复到正常状态。
IsEnabled():如果框架当前有效,则返回True。
IsFullScreen():如果框架是以全屏模式显示的,则返回True,否则False。细节参看ShowFullScreen。
IsIconized():如果框架当前最小化为图标了,则返回True,否则False。
IsMaximized():如果框架当前是最大化状态,则返回True,否则False。
IsShown():如果框架当前可见,则返回True。
IsTopLevel():对于顶级窗口部件如框架或对话框,总是返回True,对于其它类型的窗口部件返回False。
Maximize(maximize):如果参数为True,最大化框架以填充屏幕(具体的行为与系统有关)。这与敲击框架的最大化按钮所做的相同,这通常放大框架以填充桌面,但是任务栏和其它系统组件仍然可见。
Refresh(eraseBackground=True,
rect=None):触发该框架的重绘事件。如果rect是none,那么整个框架被重画。如果指定了一个矩形区域,那么仅那个矩形区域被重画。如果eraseBackground为True,那么这个窗口的北影也将被重画,如果为False,那么背景将不被重画。
SetDimensions(x, y, width, height,
sizeFlags=wx.SIZE_AUTO):使你能够在一个方法调用中设置窗口的尺寸和位置。位置由参数x和y决定,尺寸由参数width和 height决定。前四个参数中,如果有的为-1,那么这个-1将根据参数sizeFlags的值作相应的解释。表8.6包含了参数sizeFlags的可能取值。
SetDimensions方法的尺寸标记
wx.ALLOW_MINUS_ONE:一个有效的位置或尺寸。
wx.SIZE_AUTO:转换为一个wxPython默认值。
wx.SIZE_AUTO_HEIGHT:一个有效的高度,或一个wxPython默认高度。
wx.SIZE_AUTO_WIDTH:一个有效的宽度,或一个wxPython默认宽度。
wx.SIZE_USE_EXISTING:使用现有的尺寸。
Show(show=True):如果参数值为True,导致框架被显示。如果参数值为False,导致框架被隐藏。Show(False)等同于Hide()。
ShowFullScreen(show,
style=wx.FULLSCREEN_ALL):如果布尔参数是True,那么框架以全屏的模式被显示——意味着框架被放大到填充整个显示区域,包括桌面上的任务栏和其它系统组件。如果参数是False,那么框架恢复到正常尺寸。style参数是一个位掩码。默认值 wx.FULLSCREEN_ALL指示wxPython当全屏模式时隐藏所有窗口的所有样式元素。后面的这些值可以通过使用按位运算符来组合,以取消全屏模式框架的部分装饰:wx.FULLSCREEN_NOBORDER, wx.FULLSCREEN_NOCAPTION,
wx.FULLSCREEN_NOMENUBAR,
wx.FULLSCREEN_NOSTATUSBAR,
wx.FULLSCREEN_NOTOOLBAR。
2、带有滚动条的框架
wx.ScrolledWindow(parent, id=-1, pos=wx.DefaultPosition,
size=wx.DefaultSize, style=wx.HSCROLL | wx.VSCROLL,
name="scrolledWindow")
3、MDI框架
wx.MDIParentFrame(parent, id, title, pos = wx.DefaultPosition,
size=wxDefaultSize,
style=wx.DEFAULT_FRAME_STYLE | wx.VSCROLL | wx.HSCROLL,
name="frame")
4、小型框架
wx.MiniFrame的构造函数等同于wx.Frame
wx.MiniFrame的样式标记
wx.THICK_FRAME:在Windows或Motif下,使用粗边框绘制框架。
wx.TINY_CAPTION_HORIZONTAL:代替wx.CAPTION而显示一个较小的水平标题。
wx.TINY_CAPTION_VERTICAL:代替wx.CAPTION而显示一个较小的垂直标题。
5、分割窗 wx.SplitterWindow
wx.SplitterWindow(parent, id=-1, pos=wx.DefaultPosition,
size=wx.DefaultSize, style=wx.SP_3D,
name="splitterWindow")
parent是窗口部件的容器,pos是窗口部件在它的父容器中位置,size是它的尺寸。
要显示两个子窗口,使用SplitHorizontally (window1,window2,sashPosition=0)或SplitVertically(window1, window2, sashPosition=0)
分割窗的样式
wx.SP_3D:绘制三维的边框和分割条。这是一个默认样式。
wx.SP_3DBORDER:绘制三维样式的边框,不包括分割条。
wx.SP_3DSASH:绘制三维样式的分割条,不包括边框。
wx.SP_BORDER:绘制窗口的边框,非三维的样式。
wx.SP_LIVE_Update:改变响应分割条移动的默认行为。如果没有设置这个标记,那么当用户拖动分割条时,将绘制一条线来标明分割条的新位置。子窗口的尺寸没有被实际地更新,直到完成分割条拖放。如果设置了这个标记,那么当分割条在被拖动时,子窗口的尺寸将不断地变化。
wx.SP_NOBORDER:不绘制任何边框。
wx.SP_NO_XP_THEME :在Windows XP系统下,分割条不使用XP的主题样式,它给窗口一个更经典的外观。
wx.SP_PERMIT_UNSPLIT:如果设置了这个样式,那么窗口始终不被分割。如果不设置,你可以通过设置大于0的最小化的窗格尺寸来防止窗口被分割。
分割窗的事件类型
EVT_SPLITTER_DCLICK:当分割条被双击时触发。捕捉这个事件不阻塞标准的不分割行为,除非你调用事件的Veto()方