Портирование библиотеки Windows с использованием Qt на MacOSX, циклы событий - PullRequest
0 голосов
/ 14 января 2009

Я вставляю ловушку в цикл сообщений MFC, чтобы обрабатывать события Qt без запуска -> exec () в qApp (потому что он блокирует):

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);

Мой вопрос:

Какие механизмы эквивалентны вставке ловушки MFC, которые можно использовать в MacOSX, чтобы можно было также вызывать sendPostedEvents?

1 Ответ

1 голос
/ 14 января 2009

Это должно происходить автоматически с Qt Mac 4.5 (как для порта Carbon, так и для порта Cocoa) - поскольку Qt зарегистрирован как CFRunLoopSource в CFRunLoop, и обратный вызов вызовет sendPostedEvents. Смотрите также qeventdispatcher_mac.mm в src / gui / kernel из Qt 4.5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...