wxPython_笔记_static text

使用简单的wx.StaticText,如果有更复杂的要求,可以使用wx.html.HTMLWindow之类。另外,wx.StaticText不会接收或者响应鼠标事件。以下是从wxPIA的第7.1.1节摘抄的代码:
   

python 代码
  1. # -*- coding:utf-8 -*-   
  2. import wx   
  3.   
  4. class StaticTextFrame(wx.Frame):   
  5.     def __init__(self):   
  6.         wx.Frame.__init__(self, None, -1, 'Static Text Example',    
  7.                 size=(400, 300))   
  8.         panel = wx.Panel(self, -1)   
  9.            
  10.         #显示最基本的文本   
  11.         wx.StaticText(panel, -1, "This is an example of static text",    
  12.                 (100, 10))   
  13.                    
  14.         #设置有前景和背景色的文本   
  15.         rev = wx.StaticText(panel, -1, "Static Text With Reversed Colors",    
  16.                 (100, 30))   
  17.         rev.SetForegroundColour('white')   
  18.         rev.SetBackgroundColour('black')   
  19.            
  20.         #中间对齐   
  21.         center = wx.StaticText(panel, -1, "align center", (100, 50),    
  22.                 (160, -1), wx.ALIGN_CENTER)   
  23.         center.SetForegroundColour('white')   
  24.         center.SetBackgroundColour('black')   
  25.            
  26.         #右边对齐   
  27.         right = wx.StaticText(panel, -1, "align right", (100, 70),    
  28.                 (160, -1), wx.ALIGN_RIGHT)   
  29.         right.SetForegroundColour('white')   
  30.         right.SetBackgroundColour('black')   
  31.            
  32.         #改变字体   
  33.         str = "You can also change the font."   
  34.         text = wx.StaticText(panel, -1, str, (20, 100))   
  35.         font = wx.Font(18, wx.DECORATIVE, wx.ITALIC, wx.NORMAL)   
  36.         text.SetFont(font)   
  37.            
  38.         #显示多行文本   
  39.         wx.StaticText(panel, -1, "Your text\ncan be split\n"   
  40.                 "over multiple lines\n\neven blank ones", (20,150))   
  41.                    
  42.         #显示多行文本,并右对齐   
  43.         wx.StaticText(panel, -1, "Multi-line text\ncan also\n"   
  44.                 "be right aligned\n\neven with a blank", (220,150),    
  45.                 style=wx.ALIGN_RIGHT)   
  46.   
  47.   
  48. if __name__ == '__main__':   
  49.     app = wx.PySimpleApp()   
  50.     frame = StaticTextFrame()   
  51.     frame.Show()   
  52.     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)方法.后一个方法在显示歪斜的文本时更简单.
   

你可能感兴趣的:(初学笔记)