wxPython控件学习之TextCtrl(二)多行及样式文本框
时间:2010-05-14 来源:GOD_Father
#!/usr/bin/env python |
#① 其他只在多行或样式文本框中才起作用的style值有: -------------------------------------------------------------- wx.HSCROLL:除非设置,否则不自动换行,并设置水平滚动条。 wx.TE_AUTO_URL:如果RICH或RICH2被设置并且系统支持的话,本样式将使用户 鼠标移到URL上或点击URL时,产生一个事件。 wx.TE_DONTWARP: wx.HSCROLL的别名 wx.TE_LINEWARP: 以字符为界自动换行 wx.TE_MULTILINE:文本控制显示多行 wx.TE_RICH:用于windows,允许丰富文本样式的使用 wx.TE_RICH2:同上,新版本 wx.TE_WORDWARP:以单词为界自动换行 -------------------------------------------------------------- 式样可组合使用,如多行丰富式样:wx.MULTILINE|wx.RICH TextCtrl的丰富样式要以类wx.TextAttr的实例来构造。例: wx.TextAttr(textColor,backgroundColor=wx.NullColor,font=wx.NullFont) 其中color可以是颜色名或"RGB"值。NullColor,NullFont都是指使用系统默认值。 #② wx.TextAttr类的属性方法: -------------------------------------------------------------- GetBackgroundColour(): GetFont(): GetTextColour():获取背景色,字体,字体颜色。 HasBackgroundColour() HasFont() HasTextColour():获取属性值存在性,返回Bool值,属性为默认值,Has*返回 False,三项属性都为默认值则IsDefault()返回True。 -------------------------------------------------------------- #③ 当选用多行或丰富文本输入框时,wx.TextCtrl会附带下列方法: -------------------------------------------------------------- GetDefaultStyle() SetDefaultStyle(style) SetStyle(start,end,style):应用文本样式,必须调用SetDeaultStyle()或SetStyle() 前者会保留设置了默认样式的文字的样式, 后者则会立刻改变从start到end范围能的文字。 例: richText.SetStyle(8,14,wx.TextAttr("white","black")) GetLineLength(lineNO):返回给定行的长度,整数值 GetLineText(lineNo):返回给定行的文本 GetNumberOfLines():返回行数,单行返回1 IsMultiLine() IsSingleLine():返回是多行还是单行的Bool值,确定控件的状态。 PositionToXY(pos):指定文本内的一个位置(int型),返回该位置所在(列,行)的元组, 列,行的初始值都是0 ShowPosition(pos):显示指定位置的内容 XYToPosition():指定行列,返回该位置的整数值索引。 -------------------------------------------------------------- #④ 如何创建字体样式: 字体是wx.Font类的一个实例,构造函数如下: wx.Font(pointSize,family,style,weight,underline=False,facename="", encoding=wx.FONTENCODING_DEFAULT) 参数介绍: pointSize:以磅为单位的字体大小,整数值。 family:快速指定字体,支持的列表如下: %%%%%%%%%%%%%%%%%%%%%%%% wx.DECORATIVE:一个正式的,老的英文样式字体。
wx.DEFAULT:系统默认字体。
wx.MODERN:一个单间隔(固定字符间距)字体。
wx.ROMAN:serif字体,通常类似于Times New Roman。
wx.SCRIPT:手写体或草写体
wx.SWISS:sans-serif字体,通常类似于Helvetica或Arial。 %%%%%%%%%%%%%%%%%%%%%%%% style:字体是否倾斜,其值有wx.NORMAL,wx.SLANT,wx.ITALIC。 weight:是否显示粗体,其值有wx.NORMAL,wx.LIGHT,wx.BOLD。 underline:仅windows可用,True为带下划线,False不带。 faceName:指定字体名,获取系统注册的字体名的一个列表(list),方法是: e=wx.FontEnumerator() wx.EnumerateFacenames() fontList=e.GetFacenames() 如果要限制列表为固定宽度,则第一行修改为 e=wx.FontEnumerator(fixedWidth=True)