Qt Vérifiez le type de plate-forme: Mobile ou Desktop

Je cherche un code que je pourrais utiliser pour vérifier si mon application est exécutée sur un mobile / tablette ou un ordinateur. Voici un exemple pour expliquer ce que je fais:

#include  #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 

Comment ça vous regarde? Est-ce que je réinvente la roue?

La raison pour laquelle il n’y a pas (à ma connaissance) de préfines #defines pour cela, c’est que la définition de mobile vs desktop vs embedded est floue. Par exemple, Q_OS_QNX est associé à Q_OS_BLACKBERRY et Q_OS_DARWIN est défini à la fois sur Q_OS_IOS et Q_OS_MACX. Problème similaire pour Q_OS_LINUX sur Android, puis il y a toute une gamme de confusion autour des versions de Windows.

Si les définitions que vous avez proposées fonctionnent pour votre cas d’utilisation, je pense que c’est une façon tout à fait raisonnable de procéder. J’utiliserais peut-être un schéma de nommage différent pour Q_OS_foo.