Android Qt检查平台类型:移动或桌面

Android Qt检查平台类型:移动或桌面,android,c++,ios,linux,qt,Android,C++,Ios,Linux,Qt,我正在寻找一些代码,可以用来检查我的应用程序是在手机/平板电脑还是计算机上执行的。下面是一个示例来解释我在做什么: #include <QtGlobal> #if defined Q_OS_BLACKBERRY || defined Q_OS_ANDROID || defined Q_OS_IOS || defined Q_OS_WP #define Q_OS_MOBILE #else #define Q_OS_DESKTOP #endif #包括 #如果定义Q|OS|U BLA

我正在寻找一些代码,可以用来检查我的应用程序是在手机/平板电脑还是计算机上执行的。下面是一个示例来解释我在做什么:

#include <QtGlobal>

#if defined Q_OS_BLACKBERRY || defined Q_OS_ANDROID || defined Q_OS_IOS || defined Q_OS_WP
#define Q_OS_MOBILE
#else
#define Q_OS_DESKTOP
#endif
#包括
#如果定义Q|OS|U BLACKBERRY |定义Q|OS|U ANDROID |定义Q|OS|U IOS |定义Q|OS|WP
#定义Q_OS_MOBILE
#否则
#定义Q_OS_桌面
#恩迪夫
你觉得怎么样?我是在重新发明轮子吗?

据我所知,没有预先制作的定义的原因是,移动设备与桌面设备与嵌入式设备的定义很模糊。例如,Q_OS_QNX与Q_OS_BLACKBERRY一起设置,Q_OS_DARWIN在Q_OS_IOS和Q_OS_MACX上都设置。Android上的Q_OS_LINUX也存在类似的问题,而且Windows版本也存在一系列混乱


如果您建议的定义适用于您的用例,我认为这是一种完全合理的方法。不过,我可能会使用不同的命名方案来命名Q_OS_foo。

就是这样:)@boussuira谢谢;)根据您的需要,检查屏幕分辨率QApplication::desktop()->screenGeometry()可能就足够了。我的算法适用于任何情况。我想到了像达尔文和QNX这样的奇异系统。你可以画一些图表来确保它是正确的。顺便说一下,Jolla和Ubuntu手机不是我的目标平台。