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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM