使用简单的wx.StaticText,如果有更复杂的要求,可以使用wx.html.HTMLWindow之类。另外,wx.StaticText不会接收或者响应鼠标事件。以下是从wxPIA的第7.1.1节摘抄的代码:
- # -*- coding:utf-8 -*-
- import wx
- class StaticTextFrame(wx.Frame):
- def __init__(self):
- wx.Frame.__init__(self, None, -1, 'Static Text Example',
- size=(400, 300))
- panel = wx.Panel(self, -1)
- #显示最基本的文本
- wx.StaticText(panel, -1, "This is an example of static text",
- (100, 10))
- #设置有前景和背景色的文本
- rev = wx.StaticText(panel, -1, "Static Text With Reversed Colors",
- (100, 30))
- rev.SetForegroundColour('white')
- rev.SetBackgroundColour('black')
- #中间对齐
- center = wx.StaticText(panel, -1, "align center", (100, 50),
- (160, -1), wx.ALIGN_CENTER)
- center.SetForegroundColour('white')
- center.SetBackgroundColour('black')
- #右边对齐
- right = wx.StaticText(panel, -1, "align right", (100, 70),
- (160, -1), wx.ALIGN_RIGHT)
- right.SetForegroundColour('white')
- right.SetBackgroundColour('black')
- #改变字体
- str = "You can also change the font."
- text = wx.StaticText(panel, -1, str, (20, 100))
- font = wx.Font(18, wx.DECORATIVE, wx.ITALIC, wx.NORMAL)
- text.SetFont(font)
- #显示多行文本
- wx.StaticText(panel, -1, "Your text\ncan be split\n"
- "over multiple lines\n\neven blank ones", (20,150))
- #显示多行文本,并右对齐
- wx.StaticText(panel, -1, "Multi-line text\ncan also\n"
- "be right aligned\n\neven with a blank", (220,150),
- style=wx.ALIGN_RIGHT)
- if __name__ == '__main__':
- app = wx.PySimpleApp()
- frame = StaticTextFrame()
- frame.Show()
- app.MainLoop()
其中,wx.StaticText的构造函数是
wx.StaticText(parent, id, label, pos=wx.DefaultPosition,size=wx.DefaultSize, style=0, name="staticText")
**参数说明**
parent 自身的容器
id wxPython identifier.设置为-1,则会自动生成唯一id
label 要显示的文本
pos 位置.使用wx.Point或者tuple
size 尺寸.使用wx.Size或者tuple
style 样式标志位
name name...
需要注意的是,在上述代码中调用的方法都是继承自wx.Window类的,wx.StaticText没有定义任何新方法.
**style标志位说明**
wx.ALIGN_CENTER 文本中间对齐
wx.ALIGN_LEFT 文本左对齐
wx.ALIGN_RIGHT 文本右对齐
wx.ST_NO_AUTORESIZE 使用后,当文本被SetLabel()方法改变后,将不会resize.此标志需要与其他标志位作或运算
wx.StaticText覆盖了SetLabel()方法,当文本改变后将自动resize,除非设置了wx.ST_NO_AUTORESIZE.主要是为了防止文本减少,引起wx.StaticText的长度变化.(wx.StaticText的默认尺寸是文本的尺寸)
还有一个控件是wx.lib.stattext.GenStaticText,是仅仅python才拥有的wx.StaticText的重实现.拥有更加一致的跨平台性(相比标准C++版本中的wx.StaticText),并且可以接收鼠标事件,推荐使用...
还能直接在dc(device context)中使用DrawText(text,x,y)或者DrawRotatedText(text, x, y, angle)方法.后一个方法在显示歪斜的文本时更简单.