在 Mac Os X 上使用 CGEvent 和 Qt

Posted

技术标签:

【中文标题】在 Mac Os X 上使用 CGEvent 和 Qt【英文标题】:Use CGEvent with Qt on Mac Os X 【发布时间】:2011-04-28 11:37:35 【问题描述】:

我需要在我的 Qt 应用程序上模拟 keyPress(我在 mac Os X 10.6 上)。

我写了这段代码:

#include <ApplicationServices/ApplicationServices.h>
...
CGEventRef mkey = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)46, true);
CGEventPost(kCGAnnotatedSessionEventTap, mkey);
CFRelease(mkey);
...

但是有一个错误:

Undefined symbols:
  "_CGEventCreateKeyboardEvent", referenced from:
      SimuleEvent::PressControl(QString)       in simuleevent.o
  "_CGEventPost", referenced from:
      SimuleEvent::PressControl(QString)       in simuleevent.o
  "_CFRelease", referenced from:
      SimuleEvent::PressControl(QString)       in simuleevent.o

我想我必须链接一个库,但我不知道是哪个?

谢谢

尼哥

【问题讨论】:

【参考方案1】:

将此行添加到您的 .pro 文件中:

LIBS += -framework ApplicationServices

【讨论】:

【参考方案2】:

您需要链接应用程序服务框架。例如,

clang -framework ApplicationServices yoursourcefile.c

-framework 是链接器标志)

【讨论】:

以上是关于在 Mac Os X 上使用 CGEvent 和 Qt的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OS X 上使用现代 OpenGL [关闭]

使用 Qt 在 OS X/Mac 上构建 C++ 库

在 Mac OS X 上使用 JTable 进行拖放

如何在 Mac OS X 上使用 C++ 播放声音?

如何在 OS X 上使用 LaTeX

在 Mac OS X Mountain Lion(或更高版本)和 Linux 上使用 X11/Xlib.h