wxpython 向 TextCtrl 添加行
我在wxpython里有一个可以显示多行内容的只读文本框。
我知道怎么用
myTextCtrl.SetValue('hello')
来设置里面的内容。
但是这样做会把我之前的内容全部覆盖掉……我该怎么才能在里面添加新的一行,同时保留之前的内容呢?
3 个回答
0
myTextCtrl.AppendText('hello')
这个不会自动添加换行符,所以如果需要的话,你得自己在字符串里加上。
2
我之前也遇到过类似的问题,想把我在这个话题上发现的东西分享出来,以便将来有人问的时候能用得上。
要想让一个多行的 widget.TextCtrl
对象正确识别换行符(\n),需要满足两个条件:
1) 在创建这个对象的时候,"style" 参数里必须包含 wx.TE_MULTILINE
这个标签。
2) 设置 widget.TextCtrl
对象的文本内容时,必须用 widget.SetValue
,而不是 widget.SetLabel
,这样才能正确包含换行符。如果用 widget.SetLabel
,换行符会被完全去掉,可能还有其他一些不可打印的字符也会被去掉。
8
无论是 widget.AppendText
还是 widget.WriteText
,只要你发送的字符串里有换行符(比如 'hello\n'),它们每次都会写入一个新行。
AppendText
是把文本加到控件现有文本的最后面。而 WriteText
也是这样,只不过新文本是放在当前光标所在的位置。