【问题标题】:Porting Windows library using Qt to MacOSX, event loops使用 Qt 将 Windows 库移植到 MacOSX、事件循环
【发布时间】:2009-01-14 11:00:09
【问题描述】:

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

【问题讨论】:

    标签: c++ objective-c qt events


    【解决方案1】:

    这应该在 Qt Mac 4.5(Carbon 和 Cocoa 端口)中自动发生 - 因为 Qt 在 CFRunLoop 中注册为 CFRunLoopSource 并且回调将调用 sendPostedEvents。另请参阅 Qt 4.5 的 src/gui/kernel 中的 qeventdispatcher_mac.mm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2010-09-15
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多