我在MFC消息循环中插入一个钩子,以便处理Qt事件,而不在qApp上运行 - > exec()(因为它阻塞):
LRESULT CALLBACK myHookFn(int ncode, WPARAM wparam, LPARAM lparam) {
if (qApp) qApp->sendPostedEvents();
return CallNextHookEx(0, ncode, wparam, lparam);
}
和
int argc = 0;
new QApplication(argc, NULL);
SetWindowsHookEx(WH_GETMESSAGE, myHookFn, 0, threadId);
我的问题是:
与MacOSX下可以使用的MFC挂钩插入等效的机制是什么,以便也可以调用sendPostedEvents?
答案 0 :(得分:1)
这应该通过Qt Mac 4.5(Carbon和Cocoa端口)自动发生 - 因为Qt在CFRunLoop中注册为CFRunLoopSource,并且回调将调用sendPostedEvents。另请参阅Qt 4.5的