3

Python 2.7、pyqt ライブラリを使用して単純なテキスト エディターを作成しています。基本的に、ユーザーがテキスト エディターで単語を選択したときに単語の意味を表示したいと考えています。

これまでのところ、カーソルの下にある単語を検出し、辞書で調べて (print ステートメントを使用して) 意味を返すことができるので、根性を働かせることができることがわかります。

私の問題は、2 ミリ秒以内に消えないツールチップに単語の意味を表示することです。これまでのところ、私はこれを使用しています:

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

理想的には、選択が行われた場所のすぐ上に意味を表示したいのですが、これまでのところ、ツールチップが非常に速く表示されるため、カーソルの下の単語の意味を読むことさえできません. ポップアップしてすぐに消えます。少なくとも 5 秒間、またはユーザーが単語の選択を解除するまで、ツールチップを表示したままにする方法を誰かが共有できますか?

私は QHELPEVENT を使用していません (helpevent がどのようにトリガーされるかはよくわかりません)lookup_word_in_dictionary()単語が選択されたときに関数を呼び出すだけです。

どんなサンプルでも大歓迎です。

4

2 に答える 2

1

ありがとう、私は QWidget からサブクラス化された独自のポップアップ クラスを作成して、解決策を見つけました

シンプルなタイマーを使用してツールチップを非表示にしました

QTimer.singleShot(5000, self.hide_tooltip)   #check to see if the tooltip shold be hidden after 5 secs
于 2014-03-15T10:17:49.167 に答える
0

QToolTip をQSplashScreenに置き換えることができます。中国人の方は、この投稿をご覧ください。ところで、カーソルの下の単語を検出する方法を私と共有できますか?

于 2014-03-08T10:41:08.293 に答える