指针作为类变量 Qt

Pointer as a class variable Qt

本文关键字:Qt 类变量 指针      更新时间:2023-10-16

当你刚刚创建Qt应用程序时,它会自动为你创建主窗口,除了私下的最后一件事,我几乎理解了一切:范围

#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;是什么样的指针以及它的目的是什么?据我了解,它是一个空指针"for future"类型,其类是 MainWindow,所以这意味着这个成员是它自己的类中的一个对象,我说得对吗?

附言,创建该命名空间 Ui 的必要性是什么?

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

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