2015-03-02 12 views
8

Szukam kodu, którego mógłbym użyć do sprawdzenia, czy moja aplikacja jest wykonywana na telefonie komórkowym/tablecie lub komputerze. Oto przykład wyjaśniający, co robię:Qt Sprawdź typ platformy: Mobile lub 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 

Jak to wygląda dla Ciebie? Czy wymyślam nowe koło?

+3

że jest droga :) – ahmed

+0

@boussouira Dzięki;) –

+0

W zależności od potrzeb może być wystarczający, aby sprawdzić rozdzielczość ekranu QApplication :: pulpit() -> screenGeometry() – demonplus

Odpowiedz

1

Powodem, dla którego nie ma (według mojej wiedzy) wstępnego przygotowania do # definicji jest definicja telefonu komórkowego a komputera stacjonarnego a wbudowanego jest rozmyta. Na przykład Q_OS_QNX jest ustawione obok Q_OS_BLACKBERRY, a Q_OS_DARWIN jest ustawione zarówno na Q_OS_IOS, jak i Q_OS_MACX. Podobny problem związany z Q_OS_LINUX na Androidzie, a ponadto istnieje wiele nieporozumień związanych z wersjami systemu Windows.

Jeśli proponowane przez ciebie definicje działają w twoim przypadku, uważam, że jest to całkowicie rozsądny sposób postępowania Być może jednak użyłbym innego schematu nazewnictwa dla Q_OS_foo.

+0

Mój algorytm działa w każdej sytuacji. Myślałem o systemach egzotycznych, takich jak Darwin i QNX. Możesz narysować niektóre diagramy, aby się upewnić. Nawiasem mówiąc, Jolla i Ubuntu Phone nie były moimi docelowymi platformami. –

Powiązane problemy