3 Stimmen

Wie man Tooltips in Qt anzeigt

Ich schreibe ein Programm mit Qt4.5, das ein Buch in einer anderen Sprache anzeigt. Ich habe also einen großen Textkörper und möchte für jedes Wort einen anderen Tooltip anzeigen (der Tooltip enthält Parsing-Informationen für das entsprechende Wort).

Wie lässt sich dies am besten bewerkstelligen?

Ich habe eine funktionierende Lösung für einen Browser mit php und Jquery, so dass ich in Betracht gezogen hatte, es irgendwie zu C++ zu portieren und es mit QWebView anzuzeigen, aber ich habe ein Gefühl, dass es eine bessere Lösung da draußen gibt...

[Bearbeiten] Lassen Sie mich hinzufügen, dass ich die Wörter aus einer Datenbank anzeige, so dass ich eine Datenbank habe, die wie folgt aussieht:

| Id | Word | ParsingInfo                  |
--------------------------------------------
|  0 | The  | Article                      |
|  1 | fish | Noun, Subject etc.           |
|  2 | are  | Verb, 3rd Person Singular... |
|  3 | blue | Adjective...                 |

Ich brauche also eine Möglichkeit, herauszufinden, was das Id des angezeigten Wortes ist, und nicht nur das Wort, weil zum Beispiel das Wort "das" auf verschiedene Weise verwendet werden kann oder "Wind" ein Homograph hat (die Sprache, mit der ich arbeite, ist allerdings griechisch).

4voto

Von der QToolTip Dokumentation:

Der einfachste und gebräuchlichste Weg, den Tooltip eines Widgets zu setzen, ist der Aufruf seiner Funktion QWidget::setToolTip().

Es ist auch möglich, verschiedene Tooltips für verschiedene Regionen eines Widgets anzuzeigen, indem man ein QHelpEvent vom Typ QEvent::ToolTip verwendet. Fangen Sie das Hilfe-Ereignis in der Funktion event() Ihres Widgets ab und rufen Sie QToolTip::showText() mit dem Text auf, den Sie anzeigen möchten. Die Tooltips Beispiel veranschaulicht diese Technik.

Sie müssen das Wort bestimmen, das sich unter dem Cursor befindet, wenn Sie das Hilfe-Ereignis erhalten. Ich weiß nicht aus dem Stegreif, wie man das macht, aber ich bin sicher, es gibt einen Weg.

3voto

e8johan Punkte 2869

Wenn Sie nur einfaches HTML verwenden, können Sie auf eine QTextBrowser . Verwenden Sie dann die cursorForPosition Methode, um einen QTextCursor zu erhalten, von dem Sie den Text an der aktuellen Position abrufen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X