QT_BEGIN_NAMESPACE
und QT_END_NAMESPACE
sind Präprozessormakros und sie definiert sind in QtGlobal als:
#define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {
#define QT_END_NAMESPACE }
Aber: diese beiden Makros nur eine Wirkung haben, wenn Qt konfiguriert und gebaut wurde die -qtnamespace
Option, die Ihnen erlaubt, um Qt in einem benutzerdefinierten Namespace zu erstellen.
Also: wenn Sie nicht verwenden (oder Plan über die Verwendung) einer Qt-Bibliothek, die auf diese Weise gebaut wurde (standardmäßig befindet sich die Qt-Bibliothek im globalen Namespace), die QT_BEGIN_NAMESPACE
und QT_END_NAMESPACE
Weglassen nicht führen irgendwelche Probleme.
Überprüfen Sie diese http://www.qtcentre.org/threads/15946-What-s-effect-of-QT_BEGIN_NAMESPACE-Thanks – liaK
http://wiki.qt.io/Qt_In_Namespace –