【问题标题】:Qt Check platform type : Mobile or DesktopQt Check 平台类型:移动或桌面
【发布时间】:2015-05-02 21:05:42
【问题描述】:

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

#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

你觉得它怎么样?我是在重新发明轮子吗?

【问题讨论】:

  • 这就是要走的路:)
  • @boussouira 谢谢 ;)
  • 根据您的需要,检查屏幕分辨率可能就足够了 QApplication::desktop()->screenGeometry()

标签: android c++ ios linux qt


【解决方案1】:

没有(据我所知)预制#defines 的原因是移动、桌面和嵌入式的定义是模糊的。例如,Q_OS_QNX 设置在 Q_OS_BLACKBERRY 旁边,Q_OS_DARWIN 设置在 Q_OS_IOS 和 Q_OS_MACX 上。 Android 上的 Q_OS_LINUX 也有类似的问题,然后是 Windows 版本的一系列混淆。

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

【讨论】:

  • 我的算法适用于任何情况。我想到了像 Darwin 和 QNX 这样的奇异系统。您可以绘制一些图表以确保它确实如此。顺便说一句,Jolla 和 Ubuntu Phone 不是我的目标平台。
猜你喜欢
  • 2011-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多