Qt中的多色工具提示

IKM*_*007 3 c++ qt tooltip qgraphicsscene

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

lee*_*mes 7

要为单个单词(或文本的任何部分)着色,请使用其富文本引擎支持的Qt微小HTML子集.该<font>标签和属性color=的支持.QToolTip支持富文本.

这个对我有用:

toolTip.setText("foo <font color=\"red\">bar</font>");
Run Code Online (Sandbox Code Playgroud)

要使用任何RGB颜色(不仅是已知名称),请使用hex-notation:

toolTip.setText("foo <font color=\"#ff0000\">bar</font>");
Run Code Online (Sandbox Code Playgroud)

显示工具提示的图像,其中一个单词以红色着色

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