I want to have moveable multicolor tooltip for QGraphicsItems. For example when I click on graphicsItem in scene, tooltip appears, then during dragging mouse tooltip should follow cursor. I can implement movable tooltip with standard QToolTip, but seems Qt support only 1 color for whole tooltip. Also QToolTip doesn't have paintEvent, so I decide to create ColoredTooltip class inherited from QTextEdit, but problem appears when I show at first time ColoredTooltip object. It began to grab mouse events, which is not ok for me, because I can't catch mouseMove events for graphics scene and move coloredTooltip. How can I solve that problem?
Multicolor tooltip in Qt
Asked Answered
To color single words (or any part of a text) use Qt's tiny HTML subset supported by its rich text engine. The <font>
tag and the attribute color=
are supported. QToolTip
supports rich text.
This one works for me:
toolTip.setText("foo <font color=\"red\">bar</font>");
To use any RGB color (not only known names), use the hex-notation:
toolTip.setText("foo <font color=\"#ff0000\">bar</font>");
Note that unless you need to move the tool tip while being shown or want to set additional properties, you can simply use QGraphicsItem::setToolTip
.
© 2022 - 2024 — McMap. All rights reserved.
showText
– Vernievernier\n
and\t
are ignored. Use<br/>
for line breaks. For tabs, I don't know of any such replacement. Usually, one uses CSS to do this, but this might be some overkill here (I also remember having some troubles with padding in Qt CSS). Maybe use good old and ugly spaces for this
– Vernievernier