当您刚刚创建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的需求是什么?
答案 0 :(得分:6)
这是指向自动生成的类的指针(基于Qt Designer创建的.ui文件,或更确切地说,基于uic.exe)。您需要它来访问放置在设计器中表单上的小部件(因为您没有在代码中手动创建它们)。
除此之外,没什么特别的。只是指向一些向前声明的类的指针(在您的情况下,该类将在ui_MainWindow.h中定义)。它有自己的名称空间,不会与您的类冲突。