Determinare il sistema operativo in Qt

Determinare il sistema operativo in Qt

Qt, essendo un framework multipiattaforma, esegue già dei controlli / operazioni sul sistema sottostante, comportandosi di conseguenza.

Ad esempio impostando il path separator in maniera differente tra Windows e Linux / macOS.

E questo giusto per fare un esempio "banale".

Inoltre i programmi scritti con Qt possono essere compilati ed eseguiti anche su Android e iOS, in quanto è supportato anche il touch.

In più abbiamo la classe QSysInfo che può venirci in aiuto.

Ma la cosa bella è che non è finita qua!

Usando le macro di QtGlobal possiamo decidere di escludere o eseguire determinate funzioni solo in presenza di un determinato sistema operativo.

Così, se stiamo ad esempio facendo un programma disponibile anche per mobile, possiamo attivare le funzioni touch solo se siamo proprio su n dispositivo mobile.

Qui sotto un esempio che vi fa vedere le potenzialità di tutto ciò:

#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

#ifdef Q_OS_LINUX
    qDebug() << "Linux";
#elif Q_OS_ANDROID
    qDebug() << "Android";
#elif Q_OS_OSX
    qDebug() << "Mac";
#elif      Q_OS_WIN
    qDebug() "Windows";
#else
    qDebug() " Not supported";
#endif

    return a.exec();
}

Come vedete abbiamo usato le macro di QtGlobal e le direttive del pre-processore.

Come poetete vedere anche dalla documentazione, le potenzialità sono praticamente infinite.

Enjoy!