【发布时间】:2019-01-18 07:41:21
【问题描述】:
在我的 QTreeWidget 中, 当我单击时-> 必须执行单击操作 当我双击时 -> 必须执行双击操作(可以同时执行单击操作)。
但是发生的情况是每次,除了双击动作之外,双击执行,两次单击的槽被调用。
无论如何,我认为这不是 QTreeWidget 的理想行为。
谁能建议我如何解决这个问题,希望以一种简短、简单和干净的方式。
【问题讨论】:
-
所以我认为你使用 itemDoubleClicked() 和 itemClicked() 信号,所以 itemDoubleClicked() 被调用一次, itemClicked() 被调用两次?
-
@Dardanboy。是的。
-
您可以在使用 itemClicked() 调用的插槽中使用计时器,您将在其中等待 mouseDoubleClickInterval (doc.qt.io/qt-5/qstylehints.html#mouseDoubleClickInterval-prop)。计时器完成后,您将检查 itemDoubleClicked() 是否已被调用(通过将 m_isAlreadyDoubleClicked 等变量传递到插槽时设置为 true)。否则,如果 m_isAlreadyDoubleClicked 为 false,则表示用户只点击了一次。
标签: qt