对于 Python3/PyQt4 项目,我正在寻找最快的方法来更改 QTextEdit 对象中几个单词的文本外观。文本不是用 HTML 编写的(它是纯文本字符串),是只读的并且由多个单词组成。每个单词都有一个在我的代码中定义的特殊“属性”,当这个单词悬停在上面时定义它的外观。 当鼠标悬停在其中一个词上时,共享相同属性的所有词的外观必须改变。
我需要速度,因为:
- 我做了或多或少相同的程序,但是当用户单击它们时单词的外观发生了变化,我猜我的代码太慢而无法用于悬停事件。(详见下文)
- 这是一个基于 PyQt4 的 Python 项目,而不是基于 Qt 的 C++ 项目。
任何帮助,将不胜感激 !
更多细节 :
我可以看到两种方法来实现我的目标:
(1) 在编辑器中编写我的文本,检测鼠标“飞过”哪个词,让其他词突出显示并痛苦地选择它们,一个一个,插入一些 HTML 代码来修改它们的外观。这是我觉得太复杂和太慢的痛苦部分:有没有最快的方法来做到这一点?
(2) 将我的文本编写为 HTML 文本并使用 CSS,因为 QTextEditor 可以使用它们。唉,简单的方法行不通。但也许可以“重新加载”文本的 CSS 并使用更聪明的技巧?