如何使mousePressed和mouseDoubleClicked事件互斥?

时间:2010-06-25 19:32:53

标签: c++ qt

嘿伙计......好吧,我遇到了这个愚蠢的问题,每当我执行双击事件时,也会触发两个mousePressed事件,这意味着mousePressed事件代码也会无缘无故地执行两次..如何配置事件,首先检查点击是否为doubleClick事件,并且只有当这不是真时,他们继续前进到mousePressed事件..?这可能吗?

2 个答案:

答案 0 :(得分:1)

在你花费太多时间试图解决这个问题之前,请考虑一下Raymond Chen对"Logical consequences of the way Windows converts single-clicks into double-clicks"所说的话。他谈到的技术应该很容易适应Qt。但是,“双击动作的可疑设计与单击动作无关”的UI后果 - 你可能会尝试做一些让你的用户感到困惑的事情(另一方面 - 你可能会尝试防止某些东西混淆你的用户。)

此外,相关文章"Why doesn't double-right-click bring up the Properties dialog?"可能会引起关注。

答案 1 :(得分:0)

我会假设你的意思是同一个小部件。快速而肮脏的方法是将鼠标按下代码移动到私有方法,让鼠标按下事件设置一个计时器,以便在>到期计时器之后关闭可能的双击。在双击代码中,如果调用它,请务必关闭计时器。这将阻止鼠标按下事件运行两次。在计时器代码中,让它调用私有方法。