天天看點

python wx 的wx.Frame架構屬性

最近用python的wx子產品寫了一些視窗,其中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。

視窗漂浮行為的樣式

   wx.FRAME_FLOAT_ON_PARENT:架構将漂浮在其父視窗(僅其父視窗)的上面。(很明顯,要使用這個樣式,架構需要有一個父視窗)。其它的架構可以遮蓋這個架構。

   wx.STAY_ON_TOP:該架構将始終在系統中其它架構的上面。(如果你有多個架構使用了這個樣式,那麼它們将互相重疊,但對于系統中其它的架構,它們仍在上面。)

裝飾視窗的樣式

   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,那麼系統菜單項就有“最小化”選項。

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):得到或設定架構标題欄的字元串。

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(eraseTrue, 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的可能取值。

   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。

   SetDimensions方法的尺寸标記

   wx.ALLOW_MINUS_ONE:一個有效的位置或尺寸。

   wx.SIZE_AUTO:轉換為一個wxPython預設值。

   wx.SIZE_AUTO_HEIGHT:一個有效的高度,或一個wxPython預設高度。