如何在Qt中检测鼠标移动?

huangapple go评论99阅读模式
英文:

How can I detect mouse motion in Qt?

问题

我正在使用Qt Widgets(C++)编写一些内容。我需要检测鼠标何时移动(无论是在应用程序窗口内还是外部),并更新我的应用程序窗口上的光标坐标。
我找不到任何方法来实现这个功能。我想知道是否可以使用connect(...)语句来实现。
目标是Win10。

英文:

I'm writing something using Qt Widgets (C++). I need to detect when mouse is moved (either outside or inside the application window) and update cursor coordinates on my app window.
I can't find any way to do it. I wonder if it's possible to use connect( ... ) statement.

Target is Win10.

答案1

得分: 0

我发现最好的方法是通过使用WinAPI中的WH_MOUSE_LL钩子来实现,因为似乎Qt只能管理与其自身应用程序相关的鼠标事件。

我是这样做的:

SetWindowsHookEx( WH_MOUSE_LL, 当鼠标移动时要执行的操作, NULL, 0 );

更多信息:https://learn.microsoft.com/en-us/previous-versions/windows/desktop/legacy/ms644986(v=vs.85)

英文:

I figured out the best way to do it is using WinAPI through the WH_MOUSE_LL
hook, as it seems Qt can only manage mouse events related to its own app.

I did it this way:

SetWindowsHookEx( WH_MOUSE_LL, doSomethingWhenMouseMoves, NULL, 0 );

More info: https://learn.microsoft.com/en-us/previous-versions/windows/desktop/legacy/ms644986(v=vs.85)

huangapple
  • 本文由 发表于 2023年6月8日 02:43:45
  • 转载请务必保留本文链接:https://go.coder-hub.com/76426219.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定