《转》QT_BEGIN_NAMESPACE、QT_END_NAMESPACE 等问题
来源:互联网 发布:天天软件工作室 编辑:程序博客网 时间:2024/05/01 04:21
《转》QT_BEGIN_NAMESPACE、QT_END_NAMESPACE 等问题
《转》QT_BEGIN_NAMESPACE、QT_END_NAMESPACE 等问题
2010-09-10 10:07:18
标签:BEGIN NAMESPACE 休闲 END 职场
http://www.qtcn.org/bbs/read.php?tid=14065
#ifndef WINDOW_H
#define WINDOW_H
#include <QSystemTrayIcon>
#include <QDialog>
QT_BEGIN_NAMESPACE
class QAction;
class QCheckBox;
class QComboBox;
class QGroupBox;
class QLabel;
class QLineEdit;
class QMenu;
class QPushButton;
class QSpinBox;
class QTextEdit;
QT_END_NAMESPACE
//! [0]
class Window : public QDialog
{
Q_OBJECT
public:
Window();
……
}
问题:
1、QT_BEGIN_NAMESPACE、QT_END_NAMESPACE作用是什么
2、这样引入类有什么好处
3、为什么这两个类要通过include引入
#include <QSystemTrayIcon>
#include <QDialog>
1、It is possible to compile whole Qt inside a user-defined namespace.
See configure options for more details. These macros expand as:
Qt Code:
# define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {
# define QT_END_NAMESPACE }
参考资料:
http://www.qtcentre.org/threads/15946-What-s-effect-of-QT_BEGIN_NAMESPACE-Thanks
2、3
在头文件中尽量引入较少的其它头文件,可以加快编译速度;
要include QSystemTrayIcon是因为在
void iconActivated(QSystemTrayIcon::ActivationReason reason);
这个函数申明的时候需要QSystemTrayIcon类下的变量,其他的用
class QAction;
class QCheckBox;
...
是因为在头文件里面只有这些类的指针申明,并没有真正实例化,在这个头文件对应的cpp文件里面应该会
#include <QAction>
#include <QCheckBox>
...
在cpp文件里面才会正真实例化这些类。
其 实直接在头文件里面#include <QAction> #include <QCheckBox>也是可以的,像它这样做,好像是可以降低各个文件编译时的关联度,不会在改动了一下部分类的时候,引发其他大量文件的 重新编译,在做小工程的时候没什么区别,但是做大了,编译一次需要好几个小时的时候,这样做的优势就显现出来了
- 《转》QT_BEGIN_NAMESPACE、QT_END_NAMESPACE 等问题
- Qt中QT_BEGIN_NAMESPACE和QT_END_NAMESPACE
- Qt中QT_BEGIN_NAMESPACE和QT_END_NAMESPACE的作用
- QT中 QT_BEGIN_NAMESPACE、QT_END_NAMESPACE的应用介绍!!
- Qt中QT_BEGIN_NAMESPACE和QT_END_NAMESPACE的作用
- qt_begin_namespace
- QT_BEGIN_NAMESPACE
- QT_BEGIN_NAMESPACE 和 QT_BEGIN_NAMESPACE
- Qt头文件中的QT_BEGIN_NAMESPACE
- Qt头文件中的QT_BEGIN_NAMESPACE
- Qt头文件中的QT_BEGIN_NAMESPACE
- Qt头文件中的QT_BEGIN_NAMESPACE
- 关于QT_BEGIN_NAMESPACE宏的作用
- 浮点数取整等问题
- 文泰 设置等问题
- 等概率色子问题
- 图片下载 缓存等问题
- 等概率随机数问题
- 创建存储过程、触发器、视图
- org.hibernat e.DuplicateMappingException
- Razor示例【转载】
- winform DataGridView的一些技巧
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
- 《转》QT_BEGIN_NAMESPACE、QT_END_NAMESPACE 等问题
- 实习课堂:面试是弹簧,你弱他就强
- 0-1背包问题
- 常用的SQL语句基础高级sql查询
- System.getProperty()会返回什么值
- Razor语法【转载】
- 面向过程与编码设计
- Oracle的Profile文件
- Touch事件处理