wxPython中wx.TextCtrl用法

wx.TextCtrl用于显示和编辑单行或多行文本。

  • 组件样式

wx.TE_PROCESS_ENTER : 处理用户按下的Enter键。当wx.TextCtrl组件设置为wx.TE_PROCESS_ENTER样式时,用户在文本框里按下Enter键会触发wx.EVT_TEXT_ENTER事件,用户可以通过为wx.EVT_TEXT_ENTER事件绑定事件处理函数进行相关操作。

wx.TE_PROCESS_TAB : 处理用户按下的Tab键。当wx.TextCtrl组件设置为wx.TE_PROCESS_TAB样式时,会阻止Tab键的默认行为(即焦点移动至下一个组件),并触发wx.EVT_CHAR事件,用户可以通过为wx.EVT_CHAR事件绑定事件处理函数进行相关操作,比如在文本框里插入制表符等。

wx.TE_MULTILINE  : 允许文本框换行(可处理多行文本,多行文本框)。

wx.TE_PASSWORD  : 文本框里的文本以星号或小圆点等字符回显。

wx.TE_READONLY  : 不允许修改文本框里内容(只读)。

wx.TE_AUTO_URL   : 用带下划线的方式突出显示URL地址。

wx.HSCROLL   : 显示水平滚动条。

wx.TE_LEFT   : 默认样式,文本左对齐。

wx.TE_CENTRE   : 文本居中。

wx.TE_RIGHT   : 文本右对齐。

wx.TE_DONTWRAP   : 与wx.HSCROLL样式一样,显示水平滚动条。

wx.TE_CHARWRAP   : 自动换行样式,只在多行文本框下起作用。文本太长超过文本框宽度,需换行时,会在字符边界处被分割换行。

wx.TE_WORDWRAP   : 自动换行样式,只在多行文本框下起作用。文本太长超过文本框宽度,需换行时,会在单词边界(即空格或标点符号)处被分割换行。

wx.TE_BESTWRAP   : 默认自动换行样式,只在多行文本框下起作用。文本太长超过文本框宽度,需换行时,默认按单词边界换行,但如果其中单词太长超过文本框宽度,就按字符边界换行。

(注:以上样式在不同的操用系统上可能存在差异)

  • 事件处理

wx.EVT_TEXT  : 文本框中文本发生变化时触发该事件。

文本内容变化时触发该发wx.EVT_TEXT

wx.EVT_TEXT_ENTER  : 文本框中按下Enter键触发该事件。(注:文本框组件必须包含为wx.TE_PROCESS_ENTER样式,该事件才会生效)

按下Enter键触发wx.EVT_TEXT_ENTER事件

wx.EVT_TEXT_URL  : 鼠标移动到文本框组件中的URL文本时触发该事件。(注:文本框组件必须包含为wx.TE_AUTO_URL样式,让文本框可以自动识别文本中的URL才会生效)

wx.EVT_TEXT_URL事件

wx.EVT_TEXT_MAXLEN  : 文本框中输入的文本字符数超过文本框允许的最大字符个数(用wx.TextCtrl.SetMaxLength函数设置),触发该事件。

输入文本超过文本框设置的允许输入最大值,触发wx.EVT_TEXT_MAXLEN事件

  • 方法

__init__ (self, parent, id=ID_ANY, value=””, pos=DefaultPosition, size=DefaultSize, style=0, name=TextCtrlNameStr)

构造函数

参数

parent - 父窗体。不能为空(None)。

id - 文本框标识符。默认值为wx.ID_ANY(-1),表示由系统自动分配一个唯一标识符。

value - 文本框中默认文本值。

pos - 文本框位置。

size - 文本框大小。

style - 文本框样式。

name - 文本框名称。

创建只读文本框

EmptyUndoBuffer(self)

清空撤销缓冲区,文本框撤销缓冲区清空后文本框中的文本内容不能进行撤销操作(只对Windows系统中wx.TE_RICH2样式文本框和Mac系统中wx.TE_MULTILINE样式文本框有效)。

清空撤销缓冲区

EmulateKeyPress(selfevent)

模拟文本框上的按键事件,插入与事件相关联的控制符。

参数

event - 按键事件(wx.KeyEvent)。

返回

模拟事件导致文本框改变返回True,否则返回Fasle。

鼠标点击按钮后在文本框上模拟按键

GetLineLength(selflineNo)

获取指定行的长度(字符数)(不包括换行符)。

参数

lineNo - 行号(从0开始,0为第1行)。

返回

行的长度,指定行号不存在返回-1。

获取行文本长度

GetLineText(selflineNo)

获取指定行文本内容(不包括换行符)。

参数

lineNo - 行号(从0开始,0为第1行)。

返回

指定行文本。

按行获取文本内容

GetNumberOfLines(self)

获取文本行数。

返回

文本行数。

文本框中文本行数

IsModified(self)

判断文本内容是否修改过。

返回

True修改过,False没有修改过

修改文本内容

IsMultiLine(self)

判断是否多行文本框。

返回

True多行文本框,False单行文本框。

IsSingleLine(self)

判断是否单行文本框。

返回

True单行文本框,False多行文本框。

结果

LoadFile(selffilename)

加载指定文本文件至文本框。

参数

filename - 文本文件名。

返回

True加载成功,False失败。

文本框加载文本文件

MarkDirty(self)

设置文本框为已修改状态。

结果

PositionToCoords(selfpos)

将给定的文本字符的索引位置转换为以像素为单位的客户端坐标。

参数

pos - 文本字符索引位置(从0开始)。

返回

如果转换成功返回以像素为单位的wx.Point对象坐标,如果失败返回wx.DefaultPosition对象。

文本字符坐标位置

PositionToXY(selfpos)

将给定的文本字符的索引位置转换为以字符行、列为单位的客户端坐标。

参数

 pos - 文本字符索引位置(从0开始)。

返回

返回元组对象,第1个元素表示指定索引的字符是否存在(True存在,False不存在),第2个元素表示字符所在行号,第3个元素表示字符所在列号。

文本字符所在行列

SaveFile(selffilename="")

保存文本框文本内容至指定文件。

参数

filename - 保存文本的文件名称。

返回

True保存成功,False保存失败

保存文件

SetModified(selfmodified)

设置文本框修改状态。

参数

modified - 修改状态,True设置为已修改状态,False设置为未修改状态。

文本内容修改状态

XYToPosition(selfxy)

获取文本框中指定行、列上字符索引位置。

参数

x - 列数

y - 行数

返回

字符位置索引(从0开始)。

获取字符位置索引

write(selftext)

追加文本到文本框末尾。

参数

text - 要追加的文本。

追加文本内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值