先来看看Qt原生QToolTip的缺点:
1.当提示内容无变化时,弹窗无法移动。只能先传个空字符串强制弹窗隐藏,然后在新位置再传个字符串。
If the text is the same as the currently shown tooltip, the tip will not move. You can force moving by first hiding the tip with an empty text, and then showing the new tip at the new position.
2.默认显示10多秒才消失,当然这个时间是可以设置的,但是如果我想一直显示呢?总不能设置一个超级大的时间吧。
3.鼠标移出控件后(调用QToolTip::showText时传入了控件指针)默认300毫秒弹窗才隐藏。而且这个时间没法设置,如果想立即隐藏就没办法了。
所以我自定义了一个ToolTip,显示内容和更新位置不再强关联,而且能立即显示和隐藏,如效果图所示。如果不想立即隐藏,自己在定时器里调用隐藏接口QHToolTip::hideText()就行,这样比原来灵活了很多。而且保留了原生QToolTip的其他所有特性,比如自适应显示器屏幕边框等等。
QHToolTip.h<