我有一个 Qt 应用程序,在特定的内部条件发生时,会显示某些 QLabel 的工具提示。
由于工具提示有超时并且被 Qt 自动隐藏,因此应用程序通过每 3 秒显示一次工具提示来保持工具提示的存在(我没有找到任何机制告诉 Qt 无限期显示工具提示)。
工具提示会一直显示,直到用户单击 QLabel 本身:工具提示不再刷新并消失。
现在我有一个新的要求,即如果用户单击工具提示本身,则工具提示也应消失。是否有一个信号是在用户单击可见的工具提示时发送的?还是需要使用一些更复杂的技术?
编辑
我再次检查了我的代码,这里有一些额外的信息。
Qt 确实检测到在工具提示上的鼠标点击并将其隐藏,但应用程序立即再次显示工具提示。
我想做的是让 Qt 通知我的代码鼠标单击事件,以便它停止反复显示工具提示。我有两种可能的解决方案,但我不知道它们中的任何一个是否在技术上可行:
1.移除工具提示超时: 当显示工具提示时,只要用户不单击它,它就会一直可见。如何在 Qt 中显示没有超时的提示?
2.通过重复显示工具提示来保持工具提示可见;检测鼠标在工具提示上的单击,以停止保持活动循环。当用户单击工具提示时,我如何接收信号?
由于工具提示有超时并且被 Qt 自动隐藏,因此应用程序通过每 3 秒显示一次工具提示来保持工具提示的存在(我没有找到任何机制告诉 Qt 无限期显示工具提示)。
工具提示会一直显示,直到用户单击 QLabel 本身:工具提示不再刷新并消失。
现在我有一个新的要求,即如果用户单击工具提示本身,则工具提示也应消失。是否有一个信号是在用户单击可见的工具提示时发送的?还是需要使用一些更复杂的技术?
编辑
我再次检查了我的代码,这里有一些额外的信息。
Qt 确实检测到在工具提示上的鼠标点击并将其隐藏,但应用程序立即再次显示工具提示。
我想做的是让 Qt 通知我的代码鼠标单击事件,以便它停止反复显示工具提示。我有两种可能的解决方案,但我不知道它们中的任何一个是否在技术上可行:
1.移除工具提示超时: 当显示工具提示时,只要用户不单击它,它就会一直可见。如何在 Qt 中显示没有超时的提示?
2.通过重复显示工具提示来保持工具提示可见;检测鼠标在工具提示上的单击,以停止保持活动循环。当用户单击工具提示时,我如何接收信号?