2013-08-18 29 views
1

對於Python3/PyQt4項目,我正在尋找最快的方式來更改QTextEdit對象中幾個單詞的文本外觀。文本不是用HTML編寫的(它是純文本字符串),是隻讀的,由幾個詞組成。每個單詞在我的代碼中都有一個特殊的「屬性」,當這個單詞懸停時定義它的外觀。 共享相同屬性的所有單詞的外觀必須在其中一個單詞懸停時出現。在QTextEdit對象中更改texte外觀的最快方法

我需要的速度,因爲:

  • 我也或多或少相同的程序,但在用戶他們點擊,我想我的代碼是用來太慢的話的出現改變與懸停事件。 (詳見下文)
  • 這是一個基於PyQt4的Python項目,而不是基於Qt的C++項目。

任何幫助,將不勝感激!

更多細節:

我可以看到兩種方式來實現我的目標:

(1)寫我在編輯器中的文本,檢測哪些單詞鼠標「飛越」,得到其他詞突出顯示並且痛苦地一個接一個地插入一些HTML代碼來修改它們的外觀。這是痛苦的部分,我覺得太複雜,太慢了:有沒有最快的方法來做到這一點? (2)由於QTextEditor可以使用它們,所以將我的文本寫成HTML格式並使用CSS工作。唉,easy way不能工作。但也許有可能「重新加載」文本的CSS並使用更聰明的技巧?

回答

0

我想知道是否有可能從QTextEdit中獲得鼠標光標下的單詞。

你說文本無法編輯,所以我可能QTextEdit不是這個工作的最佳可能的部件。創建您自己的小部件並自行繪製文本。然後你就知道這個詞的位置,所以在鼠標下找到這個詞很容易。當某些屬性被激活或停用時,只能重繪受影響的單詞。

+0

[這是可能的](http://www.qtcentre.org/threads/11791-QTextEdit-get-word-under-the-mouse-指針),我必須使用QTextEdit。 – suizokukan

+0

爲什麼你必須使用QTextEdit?我很確定使用QTextEdit不是解決您所描述問題的最快解決方案。 – 2013-08-18 17:42:13

+0

我的問題沒有鏈接到問題「鼠標光標下的單詞在哪裏?」 (我知道如何處理這個),但事實上我想快速修改我的文本。不過,我記住你的想法,但我需要QTextEdit對象的力量。 – suizokukan