使用Qt将Windows库移植到MacOSX,事件循环

时间:2009-01-14 11:00:10

标签: c++ objective-c qt events

我在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?

1 个答案:

答案 0 :(得分:1)

这应该通过Qt Mac 4.5(Carbon和Cocoa端口)自动发生 - 因为Qt在CFRunLoop中注册为CFRunLoopSource,并且回调将调用sendPostedEvents。另请参阅Qt 4.5的