首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何跨平台扩展qobject?

如何跨平台扩展qobject?
EN

Stack Overflow用户
提问于 2015-09-21 23:15:38
回答 2查看 40关注 0票数 1

我正在开发一种获取真正的全局热键的方法(例如,即使应用程序处于模糊状态,也会在某些输入上发出信号)

这将需要不同的win、osx和x11的代码。在qt creator中,我应该如何让它适合跨平台开发。

编辑:我不想知道如何使用x11、windows等实际代码。我只想知道如何为每个平台分别定义。

EN

回答 2

Stack Overflow用户

发布于 2015-09-21 23:51:53

我不想知道如何使用x11、windows等编写实际的代码,我只想知道如何为每个平台分别进行定义。

基于预定义的编译器符号来使用ifdefs很方便,例如:

http://sourceforge.net/p/predef/wiki/OperatingSystems/

代码语言:javascript
运行
复制
#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逻辑。

票数 0
EN

Stack Overflow用户

发布于 2015-09-22 06:20:20

如果你愿意使用Qt,它的操作系统和编译器定义很容易为你所用:

代码语言:javascript
运行
复制
#include <QtGlobal>

#if defined(Q_OS_LINUX)
// linux-specifc
#elif defined(Q_OS_WIN32) && defined(Q_CC_MSVC)
// win32 and msvc
#endif

Documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32698773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档