Qt中的ui指针和this指针

初学qt,对其ui指针和this指针产生疑问,画了个把小时终于搞懂了。


首先看ui指针的定义:

在mainwindow.h中

private:
Ui::MainWindow *ui;

Ui又是什么?

同在mainwindow.h

namespace Ui {
class MainWindow;
}

本体是ui_mainwindow.h中:

namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui

也就是说Ui域中的MainWindow是完全继承自类Ui_MainWindow,而类Ui_MainWindow是关联qtdesigner的,.ui文件中的实现和类Ui_MainWindow密不可分。

再看*ui ,他是一个指向Ui域中MainWindow的指针,可以访问qtdesigner中的控件等元素,他本身是非Ui域中的MainWindow的一个成员指针变量。

然后是this:

非Ui域中的MainWindow是继承自QMainWindow的,他的构造是这样:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

this指向非Ui域中的MainWindow的一个对象,所以可以说this->ui

参考:


https://blog.csdn.net/songjinshi/article/details/7333119


上一篇:linux 下部署 java quartz job


下一篇:JS代码判断IE6,IE7,IE8,IE9的函数代码