wxPython - StaticText 類



GUI介面中的另一個重要元素是標籤,它是一行或多行的只讀文字。它通常放置在框架上,作為另一個小部件的識別符號或資訊字串。

在 wxPython 中,wx.StaticText 類物件表示一個包含此類只讀文字的控制元件。它可以被稱為被動控制元件,因為它不會產生任何事件。Wx.StaticText 類的建構函式需要以下常用引數:

Wx.StaticText(parent, id, label, position, size, style)

預定義樣式列舉器:

wx.ALIGN_LEFT 控制標籤在大小內的對齊方式
wx.ALIGN_RIGHT
wx.ALIGN_CENTER
wx.ST_NO_AUTORESIZE 防止標籤自動調整大小
wx.ST_ELLIPSIZE_START 如果文字大小大於標籤大小,省略號 (...) 將出現在開頭、中間或結尾。
wx.ST_ELLIPSIZE_MIDDLE
wx.ST_ELLIPSIZE_END

wx.StaticText 類的以下方法也很有用:

序號 方法和描述
1

SetLabel()

以程式設計方式設定物件的標籤

2

GetLabel()

返回物件的標籤

3

SetForeGroundColour()

設定標籤文字的顏色

4

SetBackGroundColour()

設定標籤的背景顏色

5

Wrap()

如果文字無法容納在大小內,則換行標籤文字。

StaticText 類的上述特性在以下示例中進行了演示。三個 StaticText 物件放置在一個垂直框調整器中。

第一個物件具有多行文字,該文字居中對齊。第二個標籤的文字設定為超過 200 畫素後換行。第三個標籤在文字中間顯示省略號 (...)。

為了設定標籤的字型,首先建立一個字型物件。

Wx.Font(pointsize, fontfamily, fontstyle, fontweight)

Fontfamily 引數採用以下值:

序號 引數和描述
1

wx.FONTFAMILY_DEFAULT

選擇預設字型

2

wx.FONTFAMILY_DECORATIVE

選擇裝飾字型

3

wx.FONTFAMILY_ROMAN

選擇正式的襯線字型

4

wx.FONTFAMILY_SCRIPT

選擇手寫字型

5

wx.FONTFAMILY_SWISS

選擇無襯線字型

6

wx.FONTFAMILY_MODERN

選擇等寬字型

7

wx.FONTFAMILY_TELETYPE

選擇電傳打字機(等寬)字型

FontStyle 引數列舉:

序號 引數和描述
1

Wx.FONTSTYLE_NORMAL

字型不傾斜

2

wx.FONTSTYLE_ITALIC

字型以斜體樣式傾斜

3

wx.FONTSTYLE_SLANT

字型傾斜,但為羅馬體

FontWeight 引數:

序號 引數和描述
1

Wx.FONTWEIGHT_NORMAL

普通字型

2

wx.FONTWEIGHT_LIGHT

細字型

3

wx.FONTWEIGHT_BOLD

粗體字

完整的程式碼清單:

import wx 
 
class Mywin(wx.Frame): 
   def __init__(self, parent, title): 
      super(Mywin, self).__init__(parent, title = title,size = (600,200))
      panel = wx.Panel(self) 
      box = wx.BoxSizer(wx.VERTICAL) 
      lbl = wx.StaticText(panel,-1,style = wx.ALIGN_CENTER) 
		
      txt1 = "Python GUI development" 
      txt2 = "using wxPython" 
      txt3 = " Python port of wxWidget " 
      txt = txt1+"\n"+txt2+"\n"+txt3 
		
      font = wx.Font(18, wx.ROMAN, wx.ITALIC, wx.NORMAL) 
      lbl.SetFont(font) 
      lbl.SetLabel(txt) 
		
      box.Add(lbl,0,wx.ALIGN_CENTER) 
      lblwrap = wx.StaticText(panel,-1,style = wx.ALIGN_RIGHT) 
      txt = txt1+txt2+txt3 
		
      lblwrap.SetLabel(txt) 
      lblwrap.Wrap(200) 
      box.Add(lblwrap,0,wx.ALIGN_LEFT) 
		
      lbl1 = wx.StaticText(panel,-1, style = wx.ALIGN_LEFT | wx.ST_ELLIPSIZE_MIDDLE) 
      lbl1.SetLabel(txt) 
      lbl1.SetForegroundColour((255,0,0)) 
      lbl1.SetBackgroundColour((0,0,0)) 
		
      font = self.GetFont() 
      font.SetPointSize(20) 
      lbl1.SetFont(font) 
		
      box.Add(lbl1,0,wx.ALIGN_LEFT) 
      panel.SetSizer(box) 
      self.Centre() 
      self.Show() 
		
app = wx.App() 
Mywin(None,  'StaticText demo') 
app.MainLoop()

以上程式碼產生以下輸出:

StaticText Output
wxpython_major_classes.htm
廣告
© . All rights reserved.