wxPython StaticText类

在GUI接口中有一个重要东西是一个标签,一行或多行的只读文本。它通常放置在框架(frame)上或者作为另一插件的标识符或作为信息串。

在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
 
StaticText类的上述特征表现在以面的例子。三个StaticText对象被放置在一个垂直的盒子大小测定器(sizer)。

所述第一对象中心对准多行文本。第二个标签的文本设置为环绕超过200像素。第三标签显示省略号(...)在文本的中间。

为了设置标签的字体,首先创建一个字体对象。
Wx.Font(pointsize, fontfamily, fontstyle, fontweight)
下面给出 FontFamily 的最常用的参数。fontFamily 参数取值为-
S.N. 参数 & 描述
1

Wx.FONTSTYLE_NORMAL

字体绘制不使用倾斜
2

wx.FONTSTYLE_ITALIC

字体是斜体
3

wx.FONTSTYLE_SLANT

字体是倾斜的,但以罗马风格形式
FontWeight参数-
S.N. 参数 & 描述
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.SetTutorialsSize(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()
上面的代码产生下面的输出 -



上一篇: wxPython Panel类 下一篇: wxPython TextCtrl类