wxPython StaticText 类

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类方法也很有用-

以下是使用最频繁的wx.StaticText方法

序号 方法和描述
1 SetLabel() 以编程方式设置对象的标签
2 GetLabel() 返回对象的标签
3 SetForeGroundColour() 设置标签文本的颜色
4 SetBackGroundColour() 设置标签的背景
5 Wrap() 如果标签的文本不能适应大小,则换行。

StaticText类的上述特性在下面的示例中演示。三个StaticText对象放置在一个垂直盒子sizer中。

第一个对象有多行文本,居中对齐。第二个标签的文本被设置为超过200像素以换行。第三个标签在文本的中间显示省略号(…)。

为了设置标签的字体,首先创建一个字体对象。

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

Fontfamily参数可以采用以下值:

下面是最常用的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 斜体字体,但呈罗马风格

字体粗细的参数有:

序号 参数与描述
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()

上述代码输出以下结果 −

wxPython StaticText 类

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程