如何使用wxPython可靠地将文本附加到文本框的末尾?

时间:2012-10-13 23:53:33

标签: python user-interface wxpython wxwidgets

Edit2:解决了!我不知道改变了什么或为什么,但现在甚至RichTextCtrl可靠地附加。尽管如此,我还是留下了下面的旧信息。

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

我需要的功能:

  1. 将文本可靠地附加到文本框末尾的功能。
  2. 阻止用户编辑文本框
  3. 垂直滚动条
    我想要的功能:
  4. 即使添加了更多行,用户也可以选择文字
  5. 可以更改文字颜色
  6. 考虑到这一点,我尝试使用wxPython提供的RichTextCtrl。 但是,似乎没有办法可靠地将文本添加到文本框的末尾。 AppendText方法不可靠。如果我单击文本框中的某个位置,同时以这种方式添加几行,很可能会在我移动光标的地方插入一行或多行。

    有没有人对如何可靠地将文字附加到RichTextCtrl有任何建议?我可能能够清除它并在每次我想要附加内容时用新文本替换它的所有文本,但我担心由此造成的性能会很严重。如果有一个更合适的文本控件,请提出建议。

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

1 个答案:

答案 0 :(得分:0)

AppendText适用于Windows,使用wxPython 2.9。如果要阻止用户编辑,则需要使用wx.TE_READ_ONLY样式标志。要显示垂直滚动条,请同时添加wx.TE_MULTILINE标志。

wxPython演示展示了如何更改文本颜色。基本上,您以编程方式选择范围并为该选择设置样式/字体。可能无法在追加时选择文本。您可能必须为追加设置某种缓冲区,并在用户完成选择或跟踪用户正在选择的内容后追加,追加然后重新选择。