QT C++(发展历史,简述,环境搭建QT5.14,构建Widget项目代码解释)

1. QT发展历史,简述

QT是一个跨平台的C++图形界面应用程序框架

  1. QT在1991年由奇趣科技开发
  2. 2008年被诺基亚收购
  3. 2012年QT被Digia公司收购
  4. 2014 QT Creator 5.3正式版发布,至此QT对IOS,安卓,等各平台的支持

QT支持的平台:

Windows,Linux(KDE),Unix,Android,Mac,Embedded(嵌入式系统)

QT版本

QT6和QT5之间的核心功能差不多,这里使用QT5

QT在发布时有两种许可证:

  1. 开源许可:使用QT开发时不需要支付费用
  2. 商业许可:使用QT开发时需要支付费用

开源许可与商业许可区别在技术支持上,商业许可会额外提供技术支持和其他功能

QT优点:

  1. 跨平台
  2. 接口简单
  3. 简化内存回收机制(半自动垃圾回收机制)
  4. 开发效率高

QT应用场景:

  1. 桌面应用程序(文件管理程序,媒体播放程序,绘图程序等)
  2. 移动应用程序
  3. 嵌入式应用程序(车载程序,工业桌面程序等)

2. 环境搭建

QT开发环境需要安装:

  1. C++编译器

  2. QT SDK(软件开发工具包,Windows环境下SDK内置C++编译器,在具体安装时需要勾选)

  3. 集成开发环境IDE(Qt Creator(官方),Visual Studio,Eclipse)

    Qt Creator在安装QT SDK时勾选即可

QT SDK5.14下载

QT SDK下载官网
在这里插入图片描述
在这里插入图片描述
下载比较慢的话可以使用镜像源,我这里使用官方源下载

下载过程

注册QT账号,如果不需要则断开网络安装
在这里插入图片描述
在这里插入图片描述

MinGW 7.2 64bit选择,其他按照需要选择,我这里多选了Android

之后配置环境变量(非必须)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置完毕环境变量后

  1. QTCreator可以找到QT SDK中提供的exe.
  2. 运行QT程序后,可以找到对应的动态库

在这里插入图片描述
Linguist:允许单独创建一个语言配置文件,把界面上需要的文字保存到配置文件上,并且在文字使用前提前把各种语言的翻译都配置进去,可以起到一键切换语言的功能。

使用案例验证是否安装成功

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
元编译技术:QT框架会在编译的时候自动调用一系列的生成工具,基于你自己写的代码来生成一系列其他代码,最后编译的代码是最后生成的那些代码。
在这里插入图片描述

使用QTCreator会自动生成代码,生成的代码包含父类,可以自己设置名称

  1. QMainWindow:完整的应用程序窗口
  2. QWidget:表示一个控件(窗口,按钮等等)
  3. QDialog:对话框

测试时选择QWidget
在这里插入图片描述
在这里插入图片描述
from file作用:
QT中创建图形化界面程序有两种方式

  1. 使用C++代码创建
  2. 通过from file,以图形化的方式来生成界面

在这里插入图片描述

在这里插入图片描述
选择那个编译器的QT SDK来构建后续代码
在这里插入图片描述

在这里插入图片描述

构建项目代码解释

在这里插入图片描述

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}
  1. QApplication:编写QT程序需要这个对象

  2. Widget:创建项目的类目,自动创建这个类。创建一个控件对象,使用show方法显示。这个方法是由Widget父类QWidge实现的

  3. a.exec():exec表示让程序运行起来

在这里插入图片描述

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h" //from file 被qmake生成的文件

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);//将from file生成的文件和当前widget关联起来
}

Widget::~Widget()
{
    delete ui;
}
  1. Q_OBJECT:QT内置宏,宏展开是一堆代码,当使用QT信号,槽机制时就需要引入Q_OBJECT宏。

  2. Widget(QWidget *parent = nullptr):在QT中引入了对象树机制,创建QT对象后,就可以向对象树(n叉树)上挂,在向对象树上挂时需要指定父对象

  3. Ui::Widget *ui:与from file密切相关。

  4. #include “ui_widget.h” :from file 被qmake生成的文件

widget.ui:
在这里插入图片描述

TestQT.pro: QT项目的工程文件,qmake构建时的依据,类似makefile
在这里插入图片描述

  1. QT+=:要引入的QT模块
  2. CONFIG:编译c++选项
  3. SOURCES,HEADERS,FORMS:项目参与构建的文件,QTCreator自动生成

qmake+.pro的作用和makefile是一致的

当项目编译后会生成下面的文件

在这里插入图片描述

  1. ui_widget.h:widget.ui资源文件,QT自动生成的文件,这个代码在setupUI这个方法生成具体的界面细节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NUC_Dodamce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值