天嵌 ARM开发社区

 找回密码
 注册
查看: 3130|回复: 0

Qt中的namespace Ui的简单解析

[复制链接]
不言DXH 发表于 2012-7-18 14:26:26 | 显示全部楼层 |阅读模式
比如在一个名为widget项目中,widget.ui文件生成ui_widget.h文件,另外还有widget.h和widget.cpp文件。
在ui_widget.h文件中会有如下定义:

class Ui_widget    //定义Ui_widget类
{
public:
..........
};
namespace Ui    //定义命名空间Ui,其中包含一个widget类,widget类继承Ui_widget的成员,没有添加其他的成员
{class widget:pulbic Ui_widget{};}

在widget.h文件中有:(注意:widget.h中没有 #include “ui_widget.h”)

namespace Ui    //申明命名空间Ui
{class widget;}
class widget:public QWidget   //注意:这里的widget跟Ui中的widget不是同一个类!!!
{
...........
private:
    Ui::widget* ui;
    /*这里定义一个Ui::widget类指针,这样widget类(非Ui命名空间中的那个类)的成员函数就可以通过ui指针来访问Ui::widget(即ui_widget类中的公共成员)*/
};

之所以要这样定义,是因为在较大的工程中避免因ui_widget.h这类文件的改变而引起大量代码的重新编译。总结来说就是:ui_widget.h的改变只会引起包含 “ui_widget.h”的文件重新编译,而包含“widget.h”且不包含“ui_widget.h”的文件是不会重新编译。

最后慎重的申明:这真的只是我个人的理解,目前还没有得到比较NB人的指点~~~所以如有理解错误,还请不吝赐教

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-4 04:46 , Processed in 1.031256 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表