我尝试学习 qt 5,但不明白一件事。
Qt Creator 默认创建这两个文件:
主窗口.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
主窗口.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) // <!-- what does it do?
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
我不明白这一点:ui(new Ui::MainWindow)
在构造函数中?我知道它初始化 ui 指针,但是初始化什么呢?对自己?基本上,这是否意味着MainWindow
用其自身初始化,或者可能引用了其他实例MainWindow
?如果是这样,它是某种 C++ 编程模式或方法吗?它有名字吗,这样我可以自己读一下。
非常感谢您的解释。
它不是MainWindow
, it's Ui::MainWindow
- 不是同一个班级。课程于Ui
命名空间是由 qmake (和朋友)自动生成的类。此类包含初始化并允许您访问表单上的小部件(您在图形 Qt 设计器中创建的小部件)的代码。
此类包含在 cpp 文件第二行的文件中:
#include "ui_mainwindow.h"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)