Как показать подсказки в Qt - PullRequest
3 голосов
/ 03 декабря 2009

Я пишу программу на Qt4.5, которая показывает книгу на другом языке. Таким образом, у меня большой объем текста, и я хочу отображать разные подсказки для каждого слова (подсказка будет содержать информацию для анализа соответствующего слова).

Каков наилучший способ сделать это?

У меня есть рабочее решение для браузера, использующего php и jquery, поэтому я подумал о том, чтобы как-то перенести его на c ++ и отобразить его с помощью QWebView, но у меня есть ощущение, что есть лучшее решение ...

[править] Позвольте мне добавить, что я отображаю слова из базы данных, поэтому у меня есть база данных, которая выглядит следующим образом:

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

Так что мне нужен какой-то способ выяснить, что такое идентификатор отображаемого слова, а не просто слово, потому что, например, слово «это» можно использовать по-разному, или «ветер» имеет гомографию ( язык, с которым я работаю, хотя и греческий).

Ответы [ 2 ]

4 голосов
/ 03 декабря 2009

Из документации QToolTip :

Самый простой и распространенный способ установить подсказку виджета - вызвать его функцию QWidget :: setToolTip ().

Можно также показать разные подсказки для разных областей виджета, используя QHelpEvent типа QEvent :: ToolTip. Перехватить событие справки в функции event () вашего виджета и вызвать QToolTip :: showText () с текстом, который вы хотите отобразить. Пример Tooltips иллюстрирует эту технику.

Вам нужно будет определить слово под курсором, когда вы получите событие справки. Я не знаю, как это сделать, но я уверен, что есть какой-то способ.

3 голосов
/ 04 декабря 2009

Если вы используете только простой HTML, вы можете переключиться на QTextBrowser . Затем используйте метод cursorForPosition , чтобы получить QTextCursor, из которого вы можете получить текст в текущем местоположении.

...