我正在使用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... |
因此,我需要一些方法来确定所显示的单词的id是什么,而不仅仅是单词,因为,例如,“that”这个词可以以不同的方式使用,或者“wind”具有同形词(我正在使用的语言是希腊文。)
答案 0 :(得分:4)
来自QToolTip文档:
设置小部件工具提示的最简单和最常用的方法是调用其QWidget :: setToolTip()函数。
通过使用QEvent :: ToolTip类型的QHelpEvent,还可以为窗口小部件的不同区域显示不同的工具提示。截取窗口小部件的event()函数中的帮助事件,并使用要显示的文本调用QToolTip :: showText()。 Tooltips示例说明了这种技术。
获得帮助事件时,您必须确定光标下的单词。我不知道如何做到这一点,但我确信有一些方法。
答案 1 :(得分:3)
如果您只使用简单的HTML,则可以切换到QTextBrowser。然后使用cursorForPosition方法获取QTextCursor,您可以从中获取当前位置的文本。