我正在设法获得真正的全球热键(即使应用程序失焦时,某些输入也会发出信号)
这将需要win vs osx vs x11的不同代码。在qt creator中我应该如何使其适合跨平台开发。
编辑:我不想知道如何用x11,windows等来实现代码。我只是想知道如何为每个平台做单独的定义。
答案 0 :(得分:0)
我不想知道如何用x11,windows等来实现代码。 我只是想知道如何为每个人做单独的定义 平台。
使用基于预定义编译符号的ifdef很方便,例如:
http://sourceforge.net/p/predef/wiki/OperatingSystems/
#ifdef __linux__ // linux related, GCC has that macros
// your code and/or definitions
#endif
#if defined(__linux__) || defined(macintosh)
// your code and/or definitions
#endif
你也可以在那里使用OR逻辑,因为Mac上的很多东西都像Linux,反之亦然。但是,请注意编译器是否具有该符号。我会将OR逻辑与适用编译器的所有平台符号一起使用。
答案 1 :(得分:0)
如果您愿意使用Qt,它可以为您提供操作系统和编译器定义:
#include <QtGlobal>
#if defined(Q_OS_LINUX)
// linux-specifc
#elif defined(Q_OS_WIN32) && defined(Q_CC_MSVC)
// win32 and msvc
#endif