2012-10-13 53 views
0

编辑2:解决!我不知道什么改变或为什么,但现在甚至一个RichTextCtrl可靠地追加。尽管如此,我仍然在下面留下旧信息。如何使用wxPython将文本可靠地附加到文本框的末尾?

所以我正在使用wxPython在python中编写GUI。这个GUI的主要元素之一是一个文本框。

特点,我需要:

  1. 可靠文本追加到文本框末尾的能力。
  2. 防止用户编辑文本框
  3. 垂直滚动条
    特点,我想:
  4. 用户可以选择,即使被附加更多行
  5. 文字颜色可以改变

文本考虑到这一点,我尝试使用wxPython提供的RichTextCtrl。 但是,似乎没有办法可靠地将文本添加到文本框的末尾。 AppendText方法不可靠。如果我点击文本框中的某个位置,而这种方式正在追加几行文字,则可能会插入一行或多行文字,而我曾经移动光标。

有没有人有任何建议如何可靠地追加文本到RichTextCtrl?每次我想添加一些内容时,我可能会清除它,并用新文本替换它的所有文本,但是我担心由此产生的性能会很严重。如果有一个不同的文本控件可以更适合这个,请给出建议。

编辑:使用常规的TextCtrl可靠地追加。 RichTextCtrl仍然没有运气。

+0

为什么不使用htmlWindow? –

回答

0

AppendText适用于Windows和wxPython 2.9。如果您想阻止用户进行编辑,您需要使用wx.TE_READ_ONLY样式标志。要显示垂直滚动条,还要添加wx.TE_MULTILINE标志。

wxPython演示显示如何更改文本颜色。基本上,您可以通过编程方式选择一个范围并为该选择设置样式/字体。在追加时获得选择文本的功能可能无法实现。在用户完成选择或跟踪用户选择,追加和重新选择之后,您可能必须为追加设置某种缓冲区并追加。

相关问题