QT_BEGIN_NAMESPACE QT_END_NAMESPACE

 QT_BEGIN_NAMESPACE
QT_END_NAMESPACE

在源代码中是这样定义的:

1
2
# define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {
# define QT_END_NAMESPACE }

也就是说,如果你定义以下内容:

1
2
3
QT_BEGIN_NAMESPACE
class QListView;
QT_END_NAMESPACE

那么,在编译时就会变成这样:

1
2
3
namespace QT_NAMESPACE {
    class QListView;
}

But: those two macros only have any effect when Qt was configured and built using the -qtnamespaceoption, which allows you to build Qt inside a user-defined namespace.

仅当在编译Qt时,加上-qtnamespace选项时,这两个宏才会有作用,这时,Qt作为第三方库,要使用用户自定义的命名空间来访问Qt中的类,如QListView *view = new QT_NAMESPACE::QListView

系转载,原地址 http://my.oschina.net/xiangxw/blog/10927

原文地址:https://www.cnblogs.com/littleby/p/4872767.html