Python 更改QTextEdit对象中文本外观的最快方法

Python 更改QTextEdit对象中文本外观的最快方法,python,qt,pyqt4,Python,Qt,Pyqt4,对于Python3/PyQt4项目,我正在寻找最快的方法来更改QTextEdit对象中几个单词的文本外观。文本不是用HTML编写的(它是纯文本字符串),是只读的,由几个单词组成。每个单词在我的代码中都定义了一个特殊的“属性”,定义了这个单词悬停时的外观。 当将其中一个单词悬停在上面时,共享相同属性的所有单词的外观必须更改。 我需要速度,因为: 我做了差不多相同的程序,但是当用户点击这些单词时,它们的外观发生了变化,我想我的代码太慢了,不能用于悬停事件。(详情见下文) 是基于pyqt4的Pyth

对于Python3/PyQt4项目,我正在寻找最快的方法来更改QTextEdit对象中几个单词的文本外观。文本不是用HTML编写的(它是纯文本字符串),是只读的,由几个单词组成。每个单词在我的代码中都定义了一个特殊的“属性”,定义了这个单词悬停时的外观。 当将其中一个单词悬停在上面时,共享相同属性的所有单词的外观必须更改。

我需要速度,因为:

  • 我做了差不多相同的程序,但是当用户点击这些单词时,它们的外观发生了变化,我想我的代码太慢了,不能用于悬停事件。(详情见下文)
  • 是基于pyqt4的Python项目,不是基于Qt.
  • 的C++程序。
任何帮助都将不胜感激

更多详情:

我可以通过两种方式实现我的目标:

(1) 在编辑器中编写我的文本,检测鼠标“飞过”的单词,突出显示其他单词,然后痛苦地选择它们,一个接一个,插入一些HTML代码来修改它们的外观。这是我觉得太复杂、太慢的一个痛苦的部分:有没有最快的方法


(2) 将我的文本编写为HTML文本并使用CSS,因为QTextEditor可以使用它们。唉,这台机器坏了。但是,也许有可能“重新加载”文本的CSS并使用更巧妙的技巧吗?

我想知道是否有可能从QTextEdit中获得鼠标光标下的单词


你说文本不能编辑,所以我可能QTextEdit不是这个工作的最佳工具。创建自己的小部件并自己绘制文本。然后你知道单词的位置,所以在鼠标下找到单词很容易。当某些属性被激活或停用时,您只能重新绘制受影响的单词。

我必须使用QTextEdit。为什么必须使用QTextEdit?我很确定使用QTextEdit并不是解决您描述的问题的最快方法。我的问题与“鼠标光标下的单词在哪里?”这一问题无关(我知道如何处理),而是与我想快速修改文本片段这一事实有关。虽然我记住了你的想法,但我需要QTextEdit对象的强大功能。我知道你可以在鼠标下获得word。但是在问题中,你说文本是只读的,没有使用HTML。所以我不明白的是QTextEdit真正需要什么特性。