C++ Qt中的多色工具提示

C++ Qt中的多色工具提示,c++,qt,tooltip,qgraphicsscene,C++,Qt,Tooltip,Qgraphicsscene,我想为QGraphicsSitems提供可移动的多色工具提示。例如,当我在场景中单击graphicsItem时,工具提示会出现,然后在拖动鼠标时,工具提示应该跟随光标。我可以用标准的QToolTip实现可移动的工具提示,但Qt似乎只支持整个工具提示的一种颜色。QToolTip也没有paintEvent,所以我决定创建从QTextEdit继承的ColoredTooltip类,但当我第一次显示ColoredTooltip对象时,问题就出现了。它开始抓取鼠标事件,这对我来说不合适,因为我无法捕捉图形场

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

要给单个单词(或文本的任何部分)上色,请使用。支持
标记和属性
color=
QToolTip
支持富文本

这个对我很有用:

toolTip.setText("foo <font color=\"red\">bar</font>");
toolTip.setText(“foo-bar”);
要使用任何RGB颜色(不仅仅是已知名称),请使用十六进制表示法:

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


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

您的意思是“同一工具提示上有多种颜色”?要更改颜色还是要“纹理化”工具提示?不,我可以更改整个工具提示的颜色,但我希望单个工具提示中至少有3种颜色。它们应该如何显示?作为线性梯度?你有没有像我回答的那样用刷子刷牙?我没有测试它,所以我不知道它是否有效。等等。。。如果你指的是文字颜色,那么你很可能想要给文字上色。你可以在工具提示中使用HTML。哦,我明白了。请注意,一旦文本包含HTML标记,Qt就会将其解析为HTML(他们称之为“富文本”)。在HTML中,像
\n
\t
这样的空白字符被忽略。对于换行符,请使用

。至于标签,我不知道有这样的替代品。通常,人们使用CSS来实现这一点,但这可能有些过分(我还记得在Qt CSS中填充时遇到了一些问题)。可能会为此