首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

建立的空缺QT项目,默认生成代码的含义是这样的么

2013-06-19 
建立的空白QT项目,默认生成代码的含义是这样的么?默认建立的项目有3个文件:mainwindow.hmain.cppmainwindo

建立的空白QT项目,默认生成代码的含义是这样的么?
默认建立的项目有3个文件:
mainwindow.h
main.cpp
mainwindow.cpp


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


问题1:请问这个代码里
namespace Ui {
class MainWindow;
}
表示建立一个命名空间,在这个空间里了建立一个类 名字叫MainWindow 是吗?


问题2:如果问题1成立,那么
class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private:
    Ui::MainWindow *ui;
};

这个类定义 为什么没有写在命名空间里 而是写在命名空间外? 这样写在外面不会出错吗?



问题3:
private:
    Ui::MainWindow *ui;

为什么这里不是 直接写 MainWindow *ui; 难道命名空间里的MainWindow  和这里声明的类MainWindow 不是同一个?




//接下来说说这个文件里 mainwindow.cpp  的构造函数

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}


问题4: 【:    QMainWindow(parent)】 这个冒号 后面跟这这个函数什么意思,有何用意?

问题5:【, ui(new Ui::MainWindow)】 逗号后面跟这个函数 又有何意?



本人新手,最近看了c++的书 刚好有点疑惑 ,相信这个疑惑解决后,又能更上一层楼,特来求助
Qt 对象
[解决办法]
4:调用基类的构造函数
5:初始化成员变量


[解决办法]
问题一,答案是肯定的。
问题二,命名空间里是声明,外面是定义,声明和定义分开写是没有问题的,和嵌套类差不多吧。
问题三,当然不是同一个,用Ui::MainWindow *ui;表明是用自己设计的UI窗口类定义了一个指针。在构造函数中还会有这样一行代码ui.setupUi(this);这里的this才是你定义的MainWindow窗口类指针,这里将MainWIndow窗口类设置为ui的样式。

热点排行