首页 » 技术分享 » QT中的this指针什么意思?namespace又是什么意思?

QT中的this指针什么意思?namespace又是什么意思?

 

初学者对于qt中的this指针会摸不着头脑,下面我谈谈自己的理解。

结论:this指针,指的就是qt designer里面ui界面,也就是xxx.ui文件。

举个例子。

现在我有三个文件,分别是server.h头文件,server.cpp源文件,还有server.ui文件。

在server.h文件里我定义了一个类server,它继承自QWidget。在private:里定义了一个server类的ui文件,实际上就是server.ui文件


//server.h
namespace Ui
{
    class server;
}


class server : public QWidget
{
    Q_OBJECT

public:
    explicit server(QWidget *parent = 0,winpcap *tem = NULL);
    ~server();



private:
    Ui::server *ui;

protected:

    void paintEvent(QPaintEvent *);

this指针的一般解释是:this指针指向一个类的对象,只能在一个类的成员函数中调用,表示当前对象的地址。

在这个例子中,

 Ui::server *ui;


这个新定义的ui 即是server类的一个对象(同时也是server.ui文件),当我在调用server类的成员函数(比如上面的 paintEvent函数),在paintEvent里使用this指针的时候,this指针所指的就是server.ui文件!

*****************************************************************(这段是解释namespace,不看可跳过)

有的同学会对qt中的namespace Ui疑惑,比如上面代码中的,


namespace Ui
{
    class server;
}

这里谈谈我的理解。

为什么要用namespace?原因就在于qt想把 <直观的ui界面> 从 <具体的代码> 中分离出来。

怎么分离呢,基本思路就是从<具体的代码>中复制一份相同的代码出来,再转化为ui界面。具体的操作就是新定义一个server类的对象。

比如,上面那个例子。

private:
    Ui::server *ui;  //从<具体的代码>中复制一份相同的代码出来

转载自原文链接, 如需删除请联系管理员。

原文链接:QT中的this指针什么意思?namespace又是什么意思?,转载请注明来源!

0