首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QToolTip::showText在鼠标释放后消失

QToolTip::showText在鼠标释放后消失
EN

Stack Overflow用户
提问于 2016-06-17 08:26:37
回答 1查看 1.9K关注 0票数 2

我想在QGLWidget上显示工具提示,但必须在另一个类中调用;QToolTip::showText(pos, "Message", qglwidgetPtr, rect(), 5000);

因此,工具提示在释放鼠标按钮后消失。如果我不释放它,工具提示就会在那5000次魔法之后消失。我不明白消失的问题。我认为这可能是触发消失的QGL小部件绘制事件,但我不确定。

EN

回答 1

Stack Overflow用户

发布于 2016-06-17 12:32:16

首先,让我们了解一下问题的症结所在。当用户移动鼠标光标而不是鼠标上方时,工具提示应该隐藏起来。因此,当您在其他地方释放鼠标按钮时,您的操作系统会捕捉到一个鼠标事件,而不是在工具提示的起点附近,因此它会隐藏工具提示。

因此,我的解决方案如下:创建QTimer并在需要时(5秒)以每秒几次显示工具提示。你可以这么做,因为在文档中说

如果文本与当前显示的工具提示相同,提示将不会移动。

(也就是说,使用相同的文本多次调用showText是可以的)

要创建计时器,可以使用以下代码:

代码语言:javascript
复制
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(100); // ten times per second

update()函数的主体中,您可以比较当前时间和第一次显示该工具提示的时间,并在仍然需要时显示工具提示(即,如果显示时间小于5秒)。

代码语言:javascript
复制
howLongShown = curTime - startTime; // startTime here is the moment of first showing of the tooltip
if (howLongShown < 5000)
  QToolTip::showText(pos, "Message", qglwidgetPtr, rect(), 5000 - howLongShown);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37876638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档