创建mainwindow工程
mainwindow.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
以上class MainWindow;作为声明使用.仅仅是声明,如头文件在编译的预处理阶段就被包含到c文件中.因为在MainWindow类的定义中使用到了Ui命名空间的MainWindow类,所以需在头文件的开头声明一下这个类
因为Ui命名空间的MainWindow类是在ui_mainwindow.h中定义的,在上面头文件代码中没有包含ui_mainwindow.h头文件,ui_mainwindow.h头文件的包含是放到了mainwindow.cpp中了.
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
*** 所以在预编译时会先包含"mainwindow.h"头文件,在头文件中先进行声明Ui命名空间的MainWindow类,然后再使用Ui命名空间的MainWindow类,真正的定义是放置在ui_mainwindow.h头文件中. ***