c++ - qt c++ 多个鼠标事件不同的顺序

标签 c++ qt mouseevent

目前我必须用 C++ 编写一些鼠标事件代码。我知道有按下、释放、移动、双击的鼠标事件。

我想知道的是当事件以不同的顺序使用时如何区分它们。假设我愿意:

鼠标移动 -> 鼠标点击 -> 鼠标移动 -> 鼠标释放

如何区分第一个和第二个鼠标移动事件?

我通过使用在运行 Mouse-click-event 时设置为 true 的标志“Mouse-click-flag”解决了这个问题。在 mouse-move 例程中,我有一个 if 语句检查(Mouse-click-flag== true),它决定天气或不运行 Mouse-click-event-routine。这可行,但看起来非常复杂。

如何解决这个问题?

谢谢

意大利

最佳答案

你所做的是正确的。您还想在鼠标释放事件中将 Mouse-click-flag 设置为 false,但您可能已经明白了,只是没有说出来。您提到第一步运行鼠标单击事件例程。您是否有理由不在 mousePressEvent 例程中运行它?有时有充分的理由……只是确认这就是您所需要的。

如果您只关心用户按下鼠标时的鼠标移动事件,那么正如 thuga 所说,通过在小部件上调用“setMouseTracking”并将其设置为 false 来关闭鼠标跟踪。然后你将只会得到点击-移动- Release模式。

关于c++ - qt c++ 多个鼠标事件不同的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40549359/

相关文章:

c++ - 通过对循环函数的引用传递变量

c++ - (QNativeSocketEngine) QObject : Cannot create children for a parent that is in a different thread

java - JTree选择问题

c++ - CERN 根目录 : Filling TBranches/TTree in a loop issue

c++ - 在 ubuntu 14.04 上用 boost 编译 : undefined reference to `boost::thread::get_id() const'

c++ - 使用 QProcessEnvironment 更改 cmd.exe 的 PATH 环境变量

c++ - 在插槽断开时清除 ExtraSelections Qt

javascript - div 内的点击位置

javascript - KineticJS 与可重复鼠标事件的问题

c++ - __m128 中最大绝对值的符号,SSE4