英文:
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)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论