wxPython – 静态文本类

wxPython – 静态文本类

GUI界面的另一个重要元素是标签,一个或多个行的只读文本。它通常被放置在框架上,作为另一个widget的标识符或作为一个信息字符串。

在wxPython中, wx.StaticText类 对象提供了一个持有这种只读文本的控件。它可以被称为被动控件,因为它不产生任何事件。Wx.StaticText类的构造函数需要以下常用参数

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

Predefined style enumerators are −

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最常用的方法 S.N. 方法和描述
1 SetLabel() 以编程方式设置对象的标签
2 GetLabel() 返回对象的标签
3 SetForeGroundColour() 设置标签文本的颜色
4 SetBackGroundColour() 设置标签的背景
5 Wrap() 如果标签的尺寸无法容纳,则包裹标签的文本。

StaticText类的上述特征在下面的例子中得到了证明。三个StaticText对象被放置在一个垂直的盒子尺寸中。

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

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

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

Fontfamily参数的取值如下

以下是最常用的Fontfamily参数 。 S.N. 参数和描述
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参数的枚举有

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.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 - 静态文本类

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程