【问题标题】:How to reliably append text to the end of a text box using wxPython?如何使用 wxPython 可靠地将文本附加到文本框的末尾?
【发布时间】:2012-10-04 09:24:57
【问题描述】:

Edit2:已解决!我不知道发生了什么变化或为什么发生了变化,但现在即使是 RichTextCtrl 也可以可靠地附加。尽管如此,我还是在下面留下了旧消息。

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

我需要的功能:

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

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

有人对如何可靠地将文本附加到 RichTextCtrl 有任何建议吗?每次我想附加一些东西时,我也许可以清除它并用新文本替换它的所有文本,但我担心这会对性能造成严重影响。如果有更合适的其他文本控件,请提出建议。

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

【问题讨论】:

  • 为什么不使用 htmlWindow?

标签: python user-interface wxpython wxwidgets


【解决方案1】:

AppendText 在带有 wxPython 2.9 的 Windows 上为我工作。如果你想阻止用户编辑,你需要使用 wx.TE_READ_ONLY 样式标志。要使垂直滚动条出现,请添加 wx.TE_MULTILINE 标志。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2011-09-06
    相关资源
    最近更新 更多