指针作为类变量Qt

时间:2018-06-28 16:46:46

标签: c++ qt

当您刚刚创建Qt应用程序时,它会自动为您创建主窗口,我几乎了解了所有内容,除了私有内容:scope

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::MainWindow *ui;
};

有人可以解释Ui::MainWindow *ui;是什么样的指针以及它的目的是什么?据我了解,它是一个“未来”类型的空指针,其类型为MainWindow类,因此这意味着该成员是其自身类中的一个对象,对吗?

P.S。以及创建该命名空间Ui的需求是什么?

1 个答案:

答案 0 :(得分:6)

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

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