当工具提示显示时,“实时”更新小工具的工具提示

我需要某个小工具的“实时”工具提示。该小部件为某个线程活动提供了一个可视化界面(基本上通知进展情况)。此活动发送常规消息,我希望这些消息可作为窗口小部件的工具提示。使用widget->setToolTip(message);可以非常简单地实现,但问题是当已经显示工具提示时,显示的消息不会动态更新。只有当鼠标移动到窗口小部件上并且工具提示显示在不同的位置时,才会刷新它。我试图找到一些解决方案也event()QEvent::ToolTip但这似乎干扰其他正常的小工具没有'活'工具提示信息的工具提示,因为QToolTip::showText()QToolTip::hideText()具有全球影响。任何想法如何破解这个?当工具提示显示时,“实时”更新小工具的工具提示

回答:

那么,像往常一样,我找到了解决方案之后,我发布了关于SO的问题。方法updateToolTip检查是否显示工具提示,并且只有当鼠标光标位于所讨论的窗口小部件上时(这是基于它没有需要工具提示的子窗口小部件的假设),则文本被更新为“实时”。

void TaskWidget::updateToolTip(const QString &message) 

{

setToolTip(message);

if (!QToolTip::isVisible())

return;

QPoint p = mapFromGlobal(QCursor::pos());

if (p.x() >= 0 && p.y() >= 0 && p.x() < width() && p.y() < height())

QToolTip::showText(QCursor::pos(), message);

}

以上是 当工具提示显示时,“实时”更新小工具的工具提示 的全部内容, 来源链接: utcz.com/qa/264710.html

回到顶部