c++ - Qt 中的多色工具提示

标签 c++ qt tooltip qgraphicsscene

我想为 QGraphicsItems 提供可移动的多色工具提示。例如,当我在场景中单击 graphicsItem 时,会出现工具提示,然后在拖动鼠标时工具提示应跟随光标。我可以使用标准 QToolTip 实现可移动的工具提示,但 Qt 似乎只支持整个工具提示的一种颜色。另外 QToolTip 没有 paintEvent,所以我决定创建继承自 QTextEdit 的 ColoredTooltip 类,但是当我第一次显示 ColoredTooltip 对象时出现问题。它开始抓取鼠标事件,这对我来说是不行的,因为我无法抓取图形场景的 mouseMove 事件和移动 coloredTooltip。我该如何解决这个问题?

最佳答案

要为单个单词(或文本的任何部分)着色,请使用 Qt's tiny HTML subset supported by its rich text engine . <font>标记和属性 color=得到支持。 QToolTip支持富文本。

这个对我有用:

toolTip.setText("foo <font color=\"red\">bar</font>");

要使用任何 RGB 颜色(不仅是已知名称),请使用十六进制表示法:

toolTip.setText("foo <font color=\"#ff0000\">bar</font>");

Image showing a tool tip where one word is colored in red

请注意,除非您需要在显示时移动工具提示或想要设置其他属性,否则您可以简单地使用 QGraphicsItem::setToolTip .

关于c++ - Qt 中的多色工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146211/

相关文章:

Java/Swing - 工具提示矩形

c++ - 将线程与堆栈一起使用 (C++)

c++ - 检查 C++0x 算法添加的可用性

c++ - Qt:强制重绘以通过快速按钮点击更新文本?

javascript - 通过 javascript 显示和隐藏引导工具提示

javascript - qTip 支持最新版本的 jQuery 吗?

java - 关于字符串中的括号

传递给函数时,this 的 C++ 地址不同

c++ - 为什么 Qt 会从 .qrc 生成一个 .cpp 文件?

c++ - Qt 中的事件队列