指针作为类变量Qt

Eng*_*ard 0 c++ qt

当你刚刚创建Qt应用程序时,它会自动为你创建主窗口,我理解除了最后一件事之外的所有东西:范围

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释什么样的指针是Ui::MainWindow *ui;什么以及它的目的是什么?据我所知它是一个空指针"for future"类型是MainWindow类,所以它意味着这个成员是它自己的类中的一个对象,我是否正确?

PS和创建该命名空间Ui需要什么?

Dan*_* M. 6

这是指向自动生成的类的指针(基于Qt Designer创建的.ui文件或更准确地说是uic.exe).您需要它来访问您在表单中放置在设计器中的小部件(因为您不在代码中手动创建它们).

除此之外,没什么特别的.只是指向一些前向声明的类的指针(在你的情况下将在ui_MainWindow.h中定义).它有自己的命名空间,不与你的类冲突.