- wxPython 教程
- wxPython - 首頁
- wxPython - 簡介
- wxPython - 環境配置
- wxPython - Hello World
- wxPython - GUI 構建工具
- wxPython - 主要類
- wxPython - 事件處理
- wxPython - 佈局管理
- wxPython - 按鈕
- wxPython - 可停靠視窗
- 多文件介面
- wxPython - 繪圖 API
- wxPython - 拖放
- wxPython 資源
- wxPython - 快速指南
- wxPython - 有用資源
- wxPython - 討論
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()
以上程式碼產生以下輸出: