当前位置:网站首页>QT入门引导 及其 案例讲解
QT入门引导 及其 案例讲解
2022-07-26 12:04:00 【比特冬哥】
一、QT概述
1. 什么是QT
Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。
2. 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等各平台的全面支持。
3. 支持的平台
- 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
4. Qt版本
Qt按照不同的版本发行,分为商业版和开源版
- 商业版
为商业软件提供开发,他们提供传统商业软件发行版,并且提供在商业有效期内的免费升级和技术支持服务。 - 开源的LGPL版本:
为了开发自有而设计的开放源码软件,它提供了和商业版本同样的功能,在GNU通用公共许可下,它是免费的。
5. Qt的下载与安装
下载地址:
http://www.qt.io/download-open-source/

安装
默认安装(建议组件全部选中)
Qt对不同的平台提供了不同版本的安装包,可根据实际情况自行下载安装
6. Qt的优点
(1)跨平台,几乎支持所有的平台
接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
(2)一定程度上简化了内存回收机制
(3)开发效率高,能够快速的构建应用程序。
(4)有很好的社区氛围,市场份额在缓慢上升。
(5)可以进行嵌入式开发。
7. 成功案例
(1)Linux桌面环境KDE
(2)WPS Office 办公软件
(3)Skype 网络电话
(4)Google Earth 谷歌地图
(5)VLC多媒体播放器
(6)VirtualBox虚拟机软件
…
二、创建Qt项目
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桌面程序。
2. 手动创建
添加一个空项目
选择【choose】进行下一步。设置项目名称和路径 —> 选择编译套件 --> 修改类信息 --> 完成(步骤同上),生成一个空项目。在空项目中添加文件:在项目名称上单击鼠标右键弹出右键菜单,选择【添加新文件】
弹出新建文件对话框

在此对话框中选择要添加的类或者文件,根据向导完成文件的添加。
三、案例讲解
当你创建完一个项目后,你会发现项目里有以下这几个文件:
- 第一个“test01”是你所创建项目时设置的工程名
- 往下看,是一个.pro文件
.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件,一般没有特殊的项目处理,你不需要对其进行修改。 - Headers是头文件
widget.h就是你在创建项目时 你所选择的窗口类头文件,以后写程序时的一些函数变量名可以在该类下进行声明或赋初值。 - Source源文件
main.cpp为创建一个窗口并显示
widget.cpp里面主要为widget类的函数调用,基本操作可以在其构造函数中实现。 - 最后一个Forms是窗体文件
widget.ui是可视化设计的窗体,你可以在里面自定义你想要的窗口布局。
main入口函数
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //a应用程序对象,在QT中,应用程序对象有且仅有一个
Widget w; //窗口对象,Widget父类 ->QWidget
w.show(); //窗口对象 默认不会显示 必须要调用show方法显示窗口
return a.exec(); //让应用程序对象进入消息循环
}
边栏推荐
猜你喜欢

How RFID works

The difference between JVM memory overflow and memory leak

JVM内存溢出和内存泄漏的区别

.NET WebAPI 使用 GroupName 对 Controller 分组呈现 Swagger UI

4.1 configure MySQL and register login module

Audio and video+

了解string类

3.1 create menu and game page - up
![[early knowledge of activities] list of recent activities of livevideostack](/img/a5/06c13865b7adbd99d43c1a52f3fc4d.png)
[early knowledge of activities] list of recent activities of livevideostack

空洞卷积详解(输入输出大小分析)
随机推荐
How do children's playgrounds operate?
.NET WebAPI 使用 GroupName 对 Controller 分组呈现 Swagger UI
Pytest interface automated testing framework | confitest.py
什么是物联网?常见IoT协议最全讲解
三维点云课程(八)——特征点匹配
Li Kai: the interesting and cutting-edge audio and video industry has always attracted me
Redisson分布式锁流程详解(二)
需不需要上线MES系统,你在纠结什么?
File类的学习过程中出现的问题及解决方法
Question and answer No. 48: geek appointment - construction path of observable system
Test cases should never be used casually, recording the thinking caused by the exception of a test case
DS-24C/DC220V时间继电器
详解勒让德变换与共轭函数
Pytest interface automated testing framework | common plug-ins of pytest
Introduction to FPGA (III) - 38 decoder
Redis为什么这么快?Redis的线程模型与Redis多线程
Use and optimization of MySQL composite index (multi column index)
pytest接口自动化测试框架 | pytest配置文件
el-form 每行显示两列,底部按钮居中
2022.7.23-----leetcode.剑指offer.115