天天看點

wxpython學習筆記之wx.Frame

   當建立wx.Frame的子類時,類應該調用其父類的構造器 wx.Frame.__init__()。wx.Frame的構造器所要求的參數如下:

wx.Frame(parent, id=-1, title=” ”, pos=wx.DefaultPosition, size=wx.DefaultSize,             
         style=wx.DEFAULT_FRAME_STYLE,name=”frame”)
           

參數說明:

parent:架構的父類,對于頂層視窗(SetTopWindow())這個值是None,架構雖父類視窗的銷毀而銷毀,架構可被限制值出現在服視窗的頂部;在多文檔界面下,子視窗被限制為隻能在父視窗中移動和縮放

id:新視窗wxpython ID 号,可以明确的傳遞一個正整數的值,或傳遞-1(wxpython将自動生成一個新的id,類似于wx.ID_ANY)

title:視窗的标題

pos:一個wx.point對象,它指定新視窗左上角在螢幕中的位置,在圖形界面程式中(0,0)指顯示器的左上角。如設定為(-1,-1)将讓系統決定視窗的位置

size:視窗的大小,一個wx.size對象,預設為(-1,-1)時将由系統決定初始大小

style:指定視窗的類型常量,

name:架構的名稱

這些參數傳遞給父類構造器的方法

wx.Frame.__init__()
           

建立wx.frame子類的方法

class Frame1(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self,None,-1,"my frame",
                          (100,100),(100,100))
           

wxpython中的ID:

ID号是所有視窗部件的特征。在一個wxPython應用程式 中。每個視窗部件都有一個視窗辨別。在每一個架構内,ID号必須是唯一的, 但是在架構之間你可以重用ID号。在wxPython中也有一些 标準的預定義的ID号,它們有特定的意思(例如,wx.ID_OK和 wx.ID_CANCEL是對話框中的OK和Cancel按鈕的ID号)。ID号的最重要的用處是在指定的對象發生的事件和響應該事件的回調函數 之間建立唯一的關聯

有三種方法來建立一個視窗部件使用的ID号:

1、明确地給構造器傳遞一個正的整數

2、使用wx.NewId()函數

3、傳遞一個全局常量wx.ID_ANY或-1給視窗部件的構造器 

要防止的程式使用相同的wxPython ID,應該避免 使用全局常量wx.ID_LOWEST和wx.ID_HIGHEST之間的ID号

使用wx.Size和wx.Point

wx.Point類表示一個點或位置。構造器要求點的x和y值。如果不設定x,y 值,則值預設為0。我們可以使用Set(x,y)和Get()函數來設定和得到x和y 值。Get()函數傳回一個元組。x和y值可以像下面這樣作為屬性被通路:

point = wx.Point(10, 12)
x = point.x
y = point.y
           

在wx.Point的實參中,坐标值一般為整數。如果你需要浮點數坐标,你可 以使用類wx.RealPoint,它的用法如同wx.Point。

wx.Size類幾乎和wx.Point完全相同,除了實參的名字是width和height。對 wx.Size的操作與wx.Point一樣。

使用wx.Frame的樣式

每個wxPython視窗部件都要求一個樣式參數。它們中的一些也适用于别的wxPython視窗部件。一些視窗部 件也定義了一個SetStyle()方法,讓你可以在該視窗部件建立後改變它的樣式。 所有的你能使用的樣式元素都有一個常量辨別符(如wx.MINIMIZE_BOX)。 要使用多個樣式,你可以使用或運算符|。如,wx.DEFAULT_FRAME_STYLE樣式就被定義為如下幾個基本樣式的組 合: 

wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX
           

要從一個合成的樣式中去掉個别的樣式,你可以使用^操作符。例如要創 建一個預設樣式的視窗,但要求使用者不能縮放和改變視窗的尺寸,你可以這樣 做:

wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MINIMIZE_BOX
|wx.MAXIMIZE_BOX)
           

wx.Frame的最重要的樣式:

wx.CAPTION:在架構上增加一個标題欄,它顯示該架構的标題屬性。

wx.CLOSE_BOX:訓示系統在架構的标題欄上顯示一個關閉框,使用系統預設的位 置和樣式。

wx.DEFAULT_FRAME_STYLE:預設樣式。

wx.FRAME_SHAPED:用這個樣式建立的架構可以使用SetShape()方法去建立一個 非矩形的視窗。

wx.FRAME_TOOL_WINDOW:通過給架構一個比正常更小的标題欄,使架構看起 來像一個工具框視窗。在Windows下,使用這個樣式建立的架構不會出現在顯示所 有打開視窗的工作列上。

wx.MAXIMIZE_BOX:訓示系統在架構的标題欄上顯示一個最大化框,使用系統預設 的位置和樣式。 wx.MINIMIZE_BOX:訓示系統在架構的标題欄上顯示一個最小化框,使用系統預設 的位置和樣式。

wx.RESIZE_BORDER:給架構增加一個可以改變尺寸的邊框。

wx.SIMPLE_BORDER:沒有裝飾的邊框。不能工作在所有平台上。

wx.SYSTEM_MENU:增加系統菜單(帶有關閉、移動、改變尺寸等功能)和關閉 框到這個視窗。在系統菜單中的改變尺寸和關閉功能的有效性依賴于 wx.MAXIMIZE_BOX, wx.MINIMIZE_BOX和wx.CLOSE_BOX樣式是否被應用。

注:本文摘自《wxPython in Action》

wxpython學習筆記之wx.Frame