【发布时间】:2011-12-20 19:45:32
【问题描述】:
我有一个 Qt 应用程序,如果发生某种内部条件,某些 QLabel 会在其中显示工具提示。
由于工具提示有超时并被 Qt 自动隐藏,因此应用程序通过每 3 秒显示一次工具提示来保持工具提示处于活动状态(我没有找到任何机制来告诉 Qt 无限期地显示工具提示)。
工具提示一直显示,直到用户单击 QLabel 本身:工具提示不再刷新并消失。
我现在有一个新要求,即如果用户单击工具提示本身,工具提示也应该消失。当用户单击可见的工具提示时是否会发送信号?还是有必要使用一些更复杂的技术?
编辑
我再次检查了我的代码,这里有一些额外的信息。
Qt 确实检测到鼠标单击工具提示并将其隐藏,但应用程序会立即再次显示工具提示。 我想做的是 Qt 通知我的代码鼠标单击事件,以便它一次又一次地停止显示工具提示。我有两种可能的解决方案,但我不知道它们中的任何一个在技术上是否可行:
- 删除工具提示超时:当显示工具提示时,只要用户不单击它,它就会保持可见。如何在 Qt 中显示工具提示而不超时?
- 通过反复显示工具提示来保持它可见;检测到鼠标单击工具提示以停止保持活动循环。当用户点击工具提示时如何接收信号?
【问题讨论】:
标签: qt event-handling tooltip