QT是跨平台的C++图形用户界面应用程序框架。主要是为开发人员提供建立图形界面功能的,面向对象,容易扩展,而且允许组件编程。

一、QT的发展:

1991年 Qt最早由奇趣科技开发

1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础

2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言

2012年 Qt又被Digia公司收购

2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。

当前Qt最新版本为 5.9.0

二、支持平台

Windows – XP、Vista、Win7、Win8、Win2008、Win10

Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台

Macintosh – Mac OS X

Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE

三、QT的版本

Qt按照不同的版本发行,分为商业版和开源版

商业版

为商业软件提供开发,他们提供传统商业软件发行版,并且提供在商业有效期内的免费升级和技术支持服务。

开源的LGPL版本:

为了开发自有而设计的开放源码软件,它提供了和商业版本同样的功能,在GNU通用公共许可下,它是免费的。

四、QT的安装与下载

下载地址:https://www.qt.io/download-open-source

默认安装(建议组件全部选中)

· Qt对不同的平台提供了不同版本的安装包,可根据实际情况自行下载安装,本文档使用qt-opensource-windows-x86-mingw482_opengl-5.3.1 版本进行讲解

五、QT的优点

  • l 跨平台,几乎支持所有的平台
  • l 接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
  • l 一定程度上简化了内存回收机制
  • l 开发效率高,能够快速的构建应用程序。
  • l 有很好的社区氛围,市场份额在缓慢上升。
  • l 可以进行嵌入式开发。

六、创建Qt项目

6.1 使用向导创建

打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项

弹出New Project对话框,选择Qt Widgets Application,

选择【Choose】按钮,弹出如下对话框

设置项目名称和路径,按照向导进行下一步,

选择编译套件

向导会默认添加一个继承自CMainWindow的类,可以在此修改类的名字和基类。默认的基类有QMainWindow、QWidget以及QDialog三个,我们可以选择QWidget(类似于空窗口),这里我们可以先创建一个不带UI的界面,继续下一步

系统会默认给我们添加main.cpp、mywidget.cpp、 mywidget.h和一个.pro项目文件,点击完成,即可创建出一个Qt桌面程序。

6.2 手动创建

添加一个空项目

选择【choose】进行下一步。设置项目名称和路径 —> 选择编译套件 --> 修改类信息 --> 完成(步骤同上),生成一个空项目。在空项目中添加文件:在项目名称上单击鼠标右键弹出右键菜单,选择【添加新文件】

弹出新建文件对话框

在此对话框中选择要添加的类或者文件,根据向导完成文件的添加。

6.3 .pro 文件

在使用Qt向导生成的应用程序.pro文件格式如下:

QT       += core gui  //包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //大于Qt4版本 才包含widget模块
TARGET = QtFirst  //应用程序名  生成的.exe程序名称
TEMPLATE = app    //模板类型    应用程序模板
SOURCES += main.cpp\   //源文件mywidget.cpp
HEADERS  += mywidget.h   //头文件

.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。.pro文件的写法如下:

注释

从“#”开始,到这一行结束。

模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = app

app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。

lib - 建立一个库的makefile。

vcapp - 建立一个应用程序的VisualStudio项目文件。

vclib - 建立一个库的VisualStudio项目文件。

subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

#指定生成的应用程序名:

TARGET = QtDemo

#工程中包含的头文件

HEADERS += include/painter.h

#工程中包含的.ui设计文件

FORMS += forms/painter.ui

#工程中包含的源文件

SOURCES += sources/main.cpp sources

#工程中包含的资源文件

RESOURCES += qrc/painter.qrc

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

这条语句的含义是,如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。

#配置信息

CONFIG用来告诉qmake关于应用程序的配置信息。

CONFIG += c++11 //使用c++11的特性

在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。

七、一个简单的Qt应用程序

main入口函数中

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

解释:

QT系统提供的标准类名声明头文件没有.h后缀

Qt一个类对应一个头文件,类名就是头文件名

QApplication应用程序类

  • 管理图形用户界面应用程序的控制流和主要设置
  • 是Qt的整个后台管理的命脉n 它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理
  • 对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个n 都正好存在一个QApplication 对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。

a.exec()

  • 程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。

传智教育QT入门到实战教程

最新QT从入门到实战完整版|传智教育https://www.bilibili.com/video/BV1g4411H78N?from=search&seid=17670057651767990383&spm_id_from=333.337.0.0

63集完结,整理了一个整个学习过程的思维导图并附带了翻金币游戏的Demo 需要的自取哦

https://note.youdao.com/ynoteshare1/index.html?id=3b53552c4fa53dcda54b761a3952865e&type=notebook

有C++基础如何直接上手QT?相关推荐

  1. 零基础如何快速上手高精度AI模型开发?

    常听技术大佬侃侃而谈AI模型开发,小白不知从何开始? 自动驾驶车辆分割.智慧农业小麦计数.智能硬件垃圾分拣.智慧城市交通流量.结构化文字识别模型定制,这些在视觉.机器学习.OCR等领域具备广泛应用前景 ...

  2. IOS基础基于pod上手体验FMDB框架

    IOS基础基于pod上手体验FMDB框架 // // ViewController.m // FMDBSingleOC // // Created by 鲁军 on 2021/3/17. //#imp ...

  3. 零基础 5 分钟上手,程序员喜提 AIoT 新利器!

    作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 近几年来,物联网发展迅速,2017 年,物联网设备数量首次超过全球人口.据预测,到 2025 年,物联网设备将超过 215 亿. 可与日 ...

  4. 【Scala教程】如何在已掌握的Java知识基础上快速上手Scala?【个人学习记录】

    如何在已掌握的Java知识基础上学习Scala 前言 正文开始! 1. 编译运行 2. 声明变量 3. 输出 4. 显式指定变量类型 5. 范围区间 6. 写入文本文件 7. 读取文本文件 8. if ...

  5. PyQt5 图形界面-基础准备:安装Qt Creater、Qt Designer工具,使用Qt Designer设计界面,安装PyQt5工具库

    PyQt5 就是一个把 QtDesigner 设计的界面转化为 python 代码的 python 库. QtDesigner 就是 QtCreater 里的一个功能,所以我们需要安装 QtCreat ...

  6. [python]---从java到python(01)---基础与入门上手

    前言 我本是java派的,已经有几年了,直接也接触过其他语言,比如从最早的汇编语言到高级语言始祖的C; 但是近来越发觉得python很火,现在以我的视角开始写入门python基础,算是入坑了; 我的计 ...

  7. ps右键不显示编辑选项_0基础小白能上手的AE动态插画教程你还不知道么?

    前两天我们开了关于动态插画技术板块的一个公开课--灯光动态插画. 静态插画效果 制作完成后的效果 很多同学在后台表示自己非常喜欢用AE软件制作动效,但奈何手边没有一个详细的,一眼能明了的教程市面上大部 ...

  8. QT 基础知识一(QT安装、创建项目、常用窗口控件使用、信号与槽机制讲解)

    QT概念 Qt:Qt是一个跨平台的C++框架(C++库),Qt除了支持界面设计(GUI编程),还封装了与网络编程.多线程.数据库连接.视频音频等相关的功能. ctrl 撤销(返回上一步) 市面常见的G ...

  9. 如何零基础快速开发上手app,成为app开发高手

    本文针对小白用户对App做一个简单的介绍,介绍了App都有哪些类型,不同的类型app开发需要哪些技术,用户可以根据自己的需求选择不同的App开发,若不懂技术,没有资金怎么开发app. 一 .App有哪 ...

最新文章

  1. 字符串 内存 函数的介绍与模拟实现
  2. php on duplicate key,php – ON DUPLICATE KEY UPDATE值;两次插入相同的值
  3. 03-编写dao实现类方式
  4. SpringBoot中自定义消息转化器
  5. java 类爆炸_Java 封装与类
  6. 五、Hive架构,安装和基本使用
  7. count 数字计数
  8. python 字符串函数 center_Python字符串处理
  9. firewall-cmd
  10. 容器编排技术 -- Kubernetes kubectl get 命令详解
  11. 最新版 Enterprise Library 企业库 V4.1 中文学习手册
  12. list转数组array[]
  13. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找
  14. 访问量100万的网站服务器,100万访问量 服务器配置
  15. 软件开发 | 如何写软件开发文档
  16. 笔记本无线自动配置服务器,笔记本无线网卡充当路由器组建局域网
  17. 长沙县:红红火火过大年 文化惠民暖人心
  18. 新手如何起步做好微商,微商如何加精准好友?微商如何选产品!如何让别人主动加微信,怎么让别人主动加我微信!
  19. PMP项目管理培训总结
  20. RK3399 Android7.1修改系统默认USB功能

热门文章

  1. 惯用过程模型(process models)
  2. error C3203
  3. 编辑 coresite.xm ⽂件
  4. java微服务架构师,java架构师成长路线-微服务架构的介绍
  5. 22考研上岸清华深研院人工智能,分享专业课807模式识别改革第一年备考经验
  6. ssm生鲜超市管理系统的设计与实现 毕业设计-附源码261635
  7. 计算机技术对视力的影响,电子屏幕对视力有哪些影响
  8. ThinkPHP5 上传图片
  9. 计算机网络:时延、时延带宽积、RTL、利用率
  10. ftp用指定的用户名和密码无法登录到该ftp服务器解决方法