对于 Qt(以及对于 stackoverflow)来说仍然相对较新,但在过去几周成功地用 Qt 替换了我们旧的过时的新 GUI 代码,并在此过程中改进了一些东西。但是现在我遇到了一个问题,到目前为止我还无法通过谷歌搜索。
一些背景:
应用程序有一个在 Qt 之外创建的 opengl 主窗口(该应用程序的大部分完全在 Qt 之外),Qt 窗口仅用于(开发)子功能,仅用于 GUI。
我在每帧的主循环中调用 processEvents()。
在两个平台上使用本地构建的 Qt 4.7.4。
在 linux 上一切正常。Qt 窗口正常运行,我可以像往常一样通过鼠标和键盘与主 opengl 窗口中的应用程序/模拟进行交互。
但是,当我应用相同的更改以在 Windows 上合并 Qt 时,鼠标不再在主窗口中工作。键盘可以,但我们的鼠标代码似乎从未收到任何 WM_INPUT 事件。当我禁用调用 processEvents() 时,鼠标再次正常工作。(但显然 Qt 窗口将无法正常工作)
似乎 Qt 正在捕获用于主窗口的鼠标事件并将它们扔掉/忘记它们,而不是将它们传递到主窗口。
不幸的是,我还没有发现任何表明这是一种常见现象(有一个常见的简单解决方案)。
我确实发现http://qt-project.org/forums/viewthread/502引用了鼠标事件的问题,但是那里提到的使用 _WIN32_WINNT=0×501 定义的编译 Qt 的解决方案没有任何区别。
任何见解将不胜感激!