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 

Как он выглядит для вас? Я изобретаю колесо?

Solutions Collecting From Web of "Qt Тип платформы проверки: мобильный или рабочий стол"

Причина в том, что нет (насколько мне известно) pre-fabbed #defines для этого – определение мобильного vs desktop vs embedded размыто. Например, Q_OS_QNX устанавливается рядом с Q_OS_BLACKBERRY, а Q_OS_DARWIN устанавливается как на Q_OS_IOS, так и на Q_OS_MACX. Аналогичная проблема для Q_OS_LINUX на Android, а также ряд путаницы в версиях Windows.

Если определения, которые вы предложили, работают для вашего прецедента, я думаю, что это вполне разумный способ продолжения. Возможно, я бы использовал другую схему именования для Q_OS_foo.