Намерение: пока я не хочу поднимать вопрос
это почти 2 года, я думаю
что хороший исправленный ответ ценен
иметь на записи, чтобы другие, которые
в конечном итоге на этот вопрос может сделать это
правильный путь.
Не могу не заметить, что в большинстве ответов рекомендуется использовать набор макросов Q_WS для определения операционной системы, это не очень хорошее решение, поскольку Q_WS_ * относится к оконной системе, а не к платформе операционной системы ( Например, X11 может быть запущен в Windows или Mac OS X, что потом?), поэтому не следует следовать этим макросам, чтобы определить платформу, для которой было скомпилировано приложение.
Вместо этого следует использовать набор макросов Q_OS_ *, которые точно определяют операционную систему.
В данный момент набор состоит из следующих макросов:
Q_OS_AIX
Q_OS_BSD4
Q_OS_BSDI
Q_OS_CYGWIN
Q_OS_DARWIN
Q_OS_DGUX
Q_OS_DYNIX
Q_OS_FREEBSD
Q_OS_HPUX
Q_OS_HURD
Q_OS_IRIX
Q_OS_LINUX
Q_OS_LYNX
Q_OS_MAC
Q_OS_MSDOS
Q_OS_NETBSD
Q_OS_OS2
Q_OS_OPENBSD
Q_OS_OS2EMX
Q_OS_OSF
Q_OS_QNX
Q_OS_RELIANT
Q_OS_SCO
Q_OS_SOLARIS
Q_OS_SYMBIAN
Q_OS_ULTRIX
Q_OS_UNIX
Q_OS_UNIXWARE
Q_OS_WIN32
Q_OS_WINCE
Ссылка: http://doc.qt.io/qt-4.8/qtglobal.html
NB: Как упоминалось Wiz в комментариях, Qt 5 полностью удалил набор макросов Q_WS_ *, поэтому теперь вы можете использовать только Q_OS_ *.