2013-06-23 33 views
1

我正在使用Python 2.7,pyqt庫編寫簡單的文本編輯器。我基本上想在用戶在文本編輯器中選擇單詞時顯示單詞的含義。顯示所選單詞的工具提示

到目前爲止,我可以將光標下檢測的話,我查字典,返回的意思(使用打印語句),所以我知道我能得到膽量工作。

我麻煩的是在不小於2毫秒dissapear工具提示顯示該單詞的含義。到目前爲止,我一直用這個:

QtGui.QToolTip.showText(QtGui.QCursor.pos(), tool_tip_text) 

理想的情況下要顯示剛剛超過在選擇被做了意義,所以到目前爲止,這顯示工具提示過,我甚至不能讀詞的含義下光標。它會立即彈出並消失。任何人都可以分享如何使工具提示在至少5秒內保持可見,或者直到用戶取消選擇該單詞。

我沒有使用QHELPEVENT(甚至不太確定helpevent是如何觸發的)當我選擇了一個單詞時,我只是打電話給我的lookup_word_in_dictionary()函數。

任何樣品非常感謝。

回答

0

你可以用QSplashScreen代替QToolTip,如果你是中國人,請看this的帖子。 順便說一句,你能分享一下你檢測光標下的單詞的方法嗎?

+0

高清textUnderCursor(個體經營): 嘗試: TC = self.textCursor() #_word_under_cursor = tc.select(QtGui.QTextCursor.WordUnderCursor) tc.select(QtGui.QTextCursor.LineUnderCursor) LineOfText = unicode的(tc.selectedText()) #PRINT 「LineOfText =%S」 %LineOfText \t \t \t #PRINT%_word_under_cursor 「下光標=%s的詞」 除外: 消息= STR(sys.exc_info() ) 打印消息 – user595985

+0

所以你使用Qt API來實現它吧? – iMath

+0

是的,我只是使用驚人的Qt API,它的工作原理。對不起,我無法更好地格式化代碼 – user595985

0

謝謝,我找到了解決辦法,創造我自己的彈出類,從QWidget中

子類,而用一個簡單的定時器來隱藏工具提示

QTimer.singleShot(5000, self.hide_tooltip) #check to see if the tooltip shold be hidden after 5 secs