2015-03-02 24 views
8

Sto cercando un codice che potrei usare per controllare se la mia applicazione è eseguita su un dispositivo mobile/tablet o un computer. Ecco un esempio per spiegare quello che sto facendo:Qt Controllare il tipo di piattaforma: Mobile o desktop

#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 

Come ti sembra? Sto reinventando la ruota?

+3

che è la strada da percorrere :) – ahmed

+0

@boussouira Grazie;) –

+0

A seconda delle esigenze può essere sufficiente per controllare la risoluzione dello schermo QApplication :: desktop() -> screenGeometry() – demonplus

risposta

1

La ragione per cui non esistono (a mia conoscenza) #define prefabbricate per questa è la definizione di desktop vs desktop vs embedded è sfocata. Ad esempio Q_OS_QNX è impostato insieme a Q_OS_BLACKBERRY e Q_OS_DARWIN è impostato su Q_OS_IOS e Q_OS_MACX. Problema simile per Q_OS_LINUX su Android, e poi c'è una serie di confusione attorno alle versioni di Windows.

Se le definizioni che hai suggerito funzionano per il tuo caso d'uso, penso che sia un modo perfettamente ragionevole per procedere. Potrei comunque usare uno schema di denominazione diverso per Q_OS_foo.

+0

mio algoritmo funziona in ogni situazione. Ho pensato a sistemi esotici come Darwin e QNX. Puoi disegnare alcuni diagrammi per assicurarti che lo faccia. A proposito, Jolla e Ubuntu Phone non erano le mie piattaforme di destinazione. –

Problemi correlati