【第一章】初识Qt

简介: 【第一章】初识Qt

1Qt概述

1.1认识Qt

Qt是一种跨平台的应用程序和用户界面框架,使用c++ 语言开发,由Qt Company(开发维护Qt的一个公司)支持和维护。Qt框架广泛应用于开发GUI应用程序,同时也可以开发非GUI程序,如命令行工具和服务器。Qt常用于电脑桌面应用开发,而电脑桌面应用开发又是前端开发中的一个分支。再说白一点,Qt就是用来搞前端的。

那么作为众多前端开发技术中的一员,Qt又有哪些特点呢?

1.2Qt的核心特性

  • 跨平台性:可跨平台是Qt最突出的特点之一.支持多个桌面操作系统(Windows、macOS、Linux)和移动操作系统(iOS、Android)。
  • 信号与槽机制:信号即事件,槽即响应这些事件的方法。这是Qt的一个核心概念,也Qt进行事件驱动编程的方式。
  • 模块化与工具:根据设计需求选择相应的模块。Qt配备了强大的工具,如Qt Designer(界面设计)、Qt Creater(集成开发环境)和其它辅助工具。

1.3Qt的发展历史

  • 1991年:挪威Trolltech(奇趣)公司的创始人Haavard Nord和Eirik Chambe-Eng首次提出Qt的概念,试图开发一个跨平台的C++图形化用户界面。
  • 1995年:Qt的第一个版本被Trolltech发布,主要用于UNIX和Linux平台。
  • 1996年:推出了支持windows平台的Qt版本,大大扩展了Qt的应用市场和应用范围。
  • 2001年:Qt3.0发布,引入了网络支持和XML处理。
  • 2008年:诺基亚收购了Trolltech公司,并将Qt作为软件开发的核心软件。
  • 2010年:发布Qt4.7,引入Qt Quick,一个用于创建动态用户界面的新框架。
  • 2012年:Qt的开发和维护权转让给了现在的Company公司。同年发布Qt5.0。
  • 2020年:推出Qt6.0.这一版本在保持向后兼容的同时,优化了数据处理和3D图形的能力,提供了更多现代化的开发特性。

Qt的发展依赖于活跃的开发者社区。每年Qt都会有多次的迭代和更新,每个主要版本的发布都会带来显著的改进和新功能。

Qt的版本分为商业版和开源版,商业版一般是企业在用,作为初学者使用开源版就足够了。

1.4QtSDK的下载和安装

Qt SDK(Software Development Kit)是一个全面的开发工具集,专为Qt开发者设计,包含了创建Qt应用程序所需的所有工具和库。这个工具集旨在提供一站式的解决方案,以简化安装和配置过程,让开发者能够快速启动并进行Qt项目开发。

点击进去之后选择一个版本进行下载,由于是国外的网站,下载的速度是很慢的,有需要的朋友可以私我,微信发给你。

下载完之后,直接默认安装就行了。

2.创建Qt项目

弹出一个对话框,选择Qt Widgets Application

接下来为项目命名,并确定路径。建议命名和路径都不要带中文,因为可能在以后导致找不到文件等错误(教训)

接下来在Build system选择构建系统工具,qmake用于自动生成makefile文件。

选择编译套件,其中Qwidget表示一个用户界面的主窗口。是所有用户界面的基类,提供了基本的应用程序窗体功能。

选择翻译文件,这些文件允许开发者为不同的语言环境提供不同的文本翻译,使得应用程序可以支持多语言用户界面。

编译套件提供了工具和库,使得开发者可以构建和编译Qt应用程序。

创建成功之后就是以下界面:

我们可以看到,创建的项目里面会自动的生成了一些文件,这些文件跟我们刚才选的选项有关。下面我们来分析这些文件的作用

2.1分析初始化文件

  1. 24-5-9.pro文件:是一个项目文件,用于定义整个项目的配置和构建规则。它被qmake工具用来生成Makefile,从而指导编译过程。
  2. widget.h:这是一个头文件,包含Widget类成员以及函数的声明。Widget类即窗口类。
  3. main.cpp:应用程序的入口点,负责启动程序,创建和显示窗口。比如创建Widget类的实例对象。
  4. widget.cpp:包含Widget类的具体实现,实现了在widget.h中声明的方法。包括窗口的构造函数,事件处理等。
  5. widget.ui:这是一个XML格式的用户界面文件,用于Qt Designer。它定义了图形用户界面的布局和属性,如按钮、文本框和其他控件的位置和样式。widget.cpp中的代码通常通过调用Ui::Widget类加载和使用这个文件来构造GUI。Ui::Widget类是由uic工具从widget.ui自动生成的。

总结

qmake工具生成的.pro文件定义了整个项目的构建配置,main.cpp文件设置程序的入口和主窗口,widget.cpp/widget.h文件定义和实现了主窗口的功能,比如点击某个按钮产生什么效果等。widget.ui则负责描述窗口的视觉布局。

2.2Widget类

其中查看widget.h文件代码我们可以发现,Widget类继承自QWidget类,QWidget类是所有用户界面的基类。

正是因为继承,Widget类才能使用了QWidge类提供的所有属性和方法,例如处理用户输入、显示输出、管理窗口等。

2.3main.cpp

2.4Qt Designer

Qt Designer是Qt开发环境中的一个强大的工具,允许开发者通过图形化界面来设计和构建CUI。它是一个所见即所得的编辑器,使得创建用户界面变得简单而直观。

设计模式就是Designer模式

设计好的界面被保存为XML格式的 .ui 文件,这些文件可以被 Qt 的 uic(用户界面编译器)工具自动转换为相应的 C++ 代码,也可以在运行时直接加载。所以我们构建用户界面布局有两种方式,一种是借用Designer模式生成,一种是纯代码生成,可混合使用。

相关文章
|
存储 算法 C++
【C/C++ Vector容量调整】理解C++ Vector:Reserve与Resize的区别与应用
【C/C++ Vector容量调整】理解C++ Vector:Reserve与Resize的区别与应用
1909 1
|
9月前
|
数据采集 Go API
Go语言实战案例:使用context控制协程取消
本文详解 Go 语言中 `context` 包的使用,通过实际案例演示如何利用 `context` 控制协程的生命周期,实现任务取消、超时控制及优雅退出,提升并发程序的稳定性与资源管理能力。
467 152
|
前端开发 API Android开发
10 大 APP 开发方案比较
本文首发于微信公众号“前端徐徐”,深入剖析了当前最受欢迎的十种APP开发方案,包括传统的iOS和Android开发、跨平台的React Native和Flutter、现代化的CapacitorJS和PWA等,旨在帮助开发者在众多选择中找到最适合的开发路径。通过详细分析每种方案的优缺点及适用场景,文章提供了详尽的比较和实用建议,助力高效、优质的APP开发。
4126 0
10 大 APP 开发方案比较
|
9月前
|
监控 搜索推荐 算法
用拼多多 API 实现拼多多店铺商品搜索权重提升
在拼多多等电商平台上,商品搜索权重直接影响曝光与销量。本文详解如何利用拼多多API自动化优化商品信息,提升搜索排名。内容涵盖权重计算公式、API基础操作及实战优化步骤,助力卖家高效提升店铺竞争力。
643 0
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
10月前
|
消息中间件 供应链 JavaScript
如何开发供应商管理系统中的质量协同板块(附架构图+流程图+代码参考)
供应商管理系统中的质量协同板块,连接采购、质检与供应商,实现来料检验、退货处理与问题改善的数字化协作。通过“来料检验单”、“采购退货单”和“8D改善报告”三大实体,详解功能设计、业务流程及开发实现,助力企业提升供应链稳定性与质量管理水平。
|
机器学习/深度学习 人工智能 资源调度
基于AI的运维资源调度:效率与智能的双重提升
基于AI的运维资源调度:效率与智能的双重提升
1852 16
基于AI的运维资源调度:效率与智能的双重提升
|
运维 监控 安全
HTTPS 证书自动化运维:HTTPS 证书管理系统之优势对比
本文详细介绍了一款功能强大的HTTPS证书管理系统,涵盖自动签发、更新、实时监控、部署一体化、自定义加密算法、集中管理和邮箱通知等功能。系统通过简化配置、智能引导、快速响应和多重防护等优势,确保企业和个人用户能高效、安全地管理证书,提升网站和应用的安全性。
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2909 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
传感器 机器人 芯片
实例4:树莓派GPIO控制舵机转动
本文是关于使用树莓派GPIO控制舵机转动的实验教程,涵盖了舵机的基本概念、结构、工作原理以及PWM信号控制方法。实验目的是通过Python编程,实现树莓派控制舵机在0°~180°范围内周期性转动。文中提供了详细的实验步骤、代码示例以及舵机调零和校准的方法。
1686 1
实例4:树莓派GPIO控制舵机转动

热门文章

最新文章