如何扩展qobject跨平台

时间:2015-09-21 15:15:38

标签: qt cross-platform qt-creator

我正在设法获得真正的全球热键(即使应用程序失焦时,某些输入也会发出信号)

这将需要win vs osx vs x11的不同代码。在qt creator中我应该如何使其适合跨平台开发。

编辑:我不想知道如何用x11,windows等来实现代码。我只是想知道如何为每个平台做单独的定义。

2 个答案:

答案 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

Documentation