qt系列1 工程模板分析

我们创建了新的工程后,我们可以得到下图的工程;

 1.首先我们分析工程配置文件,pro文件是用脚本语言(参考shell)写的

#添加qt的三大模块:core    gui      widgets

qt+     = core  gui  widgets;

core :核心模块 提高信号与槽以及事件。。。

gui: 界面模块

widgets:窗口模块

CONFIG += c++11:     //用c++11来进行编译

SOURCES += \
    main.cpp \
    mainwindow.cpp    //添加源文件

HEADERS += \
    mainwindow.h        //添加头文件

FORMS += \
    mainwindow.ui    // 添加界面设计文件 

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

//上面这段,当编译时,会自动到这些路径下找开发工具

2.头文件分析

#include <QMainWindow>
添加 QMainWindow类  的头文件
//定义一个自命名的空间
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow ; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow          //定义mainwindow类 它继承qmainwindow
{
    Q_OBJECT                                                      //qt中信号与槽的宏定义

public:
    MainWindow(QWidget *parent = nullptr);        //构造函数
    ~MainWindow();                                              //析造函数

private:
    Ui::MainWindow *ui;                                       //定义一个ui窗体
};

3. 源文件分析

#include "mainwindow.h"                                 //添加头文件

#include <QApplication>                                 //添加qt应用类

int main(int argc, char *argv[])                         //主函数
{
    QApplication a(argc, argv);                         // 创建qt应用对象  这个必须的以下的步骤都是在这                                                                              个应用对象实现的。
    MainWindow w;                                          //在应用中创建一个窗口
    w.show();                                                   //窗口显示
    return a.exec();                                         // 执行应用,一直轮询这个应用。
}

4.窗体源文件分析

#include "mainwindow.h"                             //添加头文件
#include "ui_mainwindow.h"                        //ui_mainwindow.h是界面设计头文件,不需要用户去                                                                          管,自动生成的。

MainWindow::MainWindow(QWidget *parent)     //构造函数
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);                                  //调用界面设计函数setupUi()                              
}

MainWindow::~MainWindow()
{                                                               ui(new Ui::MainWindow)
    delete ui;                                           //ui是一个野指针,在构造函数中我们为这个指针申请了一                                                                  块内存,现在需要释放它。
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值