2015-03-02 27 views
8

我正在尋找一些代碼,我可以用它來檢查我的應用程序是否在手機/平板電腦或計算機上執行。下面是一個示例來解釋我在做什麼: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 

它對你來說如何?我是否重新發明了輪子?

+3

這是去:) – ahmed 2015-03-02 13:51:25

+0

@boussouira感謝的方式;) – 2015-03-03 09:01:33

+0

根據您的需求可能就足夠了檢查屏幕分辨率的QApplication ::桌面() - > screenGeometry() – demonplus 2015-04-17 17:24:04

回答

1

之所以沒有(據我所知)pre-fabbed #defines這是移動與桌面vs嵌入的定義是模糊的。例如,Q_OS_QNX與Q_OS_BLACKBERRY一起設置,並且Q_OS_DARWIN在Q_OS_IOS和Q_OS_MACX上都被設置。 Android上Q_OS_LINUX的類似問題,然後圍繞Windows版本出現一系列混亂。

如果您提出的定義適用於您的用例,我認爲這是一種完全合理的方式。然而,我可能會對Q_OS_foo使用不同的命名方案。

+0

我的算法工作在每一種情況。我想到了像達爾文和QNX這樣的外來系統。你可以繪製一些圖表來確定它。順便說一下,Jolla和Ubuntu Phone不是我的目標平臺。 – 2015-06-09 23:14:15