目前我必须用 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/