(一)QT的简介与环境配置WIN11

目录

一、QT的概述

二、QT的下载

三、简单编程

常用快捷键


一、QT的概述

简介

Qt(发音:[kjuːt],类似“cute”)是一个跨平台的开发库,主要用于开发图形用户界面(GUI)应用程序,也支持命令行用户界面(CUI)程序。Qt支持多种操作系统平台,包括常见的Windows、Linux、Unix,智能手机操作系统如Android、iOS、WinPhone,甚至一些嵌入式系统(如QNX、VxWorks)。此外,Qt库功能逐步丰富,包含众多模块和第三方扩展。

Qt使用C++开发,且支持Python、Ruby、Perl等脚本语言绑定,这意味着可以使用这些语言开发Qt应用程序。最初,Qt是作为商业授权库发布的,后期发展为开源,并且受到开源社区的支持和扩展。

对于初学者来说,可能会面临选择使用C++或QML编程的问题。C++是Qt传统的编程语言,适合桌面应用程序开发。而QML则主要用于移动应用开发,特别是在Qt5引入QML之后,针对移动设备的开发需求更为明显。QML为开发者提供了许多与手机移动设备相关的模块,如GPS定位、蓝牙、WebKit等。

以下是 QT 的一些主要特点:

  • 跨平台支持

    • 特性:Qt 是一个真正的跨平台框架,支持多个操作系统(Windows、macOS、Linux、Android、iOS 等)。
    • 优势:同一套代码可以在不同平台上编译和运行,显著提高开发效率和一致性。
  • 高度集成的开发环境

    • 工具:Qt Creator 是专为 Qt 开发打造的 IDE,集成代码编辑、调试、界面设计等功能。
    • 注意:Qt 是框架,Qt Creator 是 IDE,要明确区分。
  • 强大的 GUI 库

    • 特性:内置丰富的 UI 控件和布局管理器,便于开发者快速构建功能齐全的图形界面。
    • 自定义能力:支持定制样式和主题,界面可根据用户需求和平台特点灵活调整。
  • 响应式编程

    • 信号与槽机制:Qt 独特的事件驱动架构,通过信号与槽实现对象间的高效通信,使代码简洁、逻辑清晰。
    • 应用场景:适合处理用户交互和异步任务。
  • 数据库支持

    • 支持范围:兼容 MySQL、SQLite、PostgreSQL 等主流数据库。
    • 优势:内置接口简化了数据持久化和数据库操作。
  • 多媒体功能

    • 接口丰富:支持音频播放、视频处理、图像处理等功能。
    • 扩展性:适合开发多媒体应用,如播放器、图像编辑工具等。

发展史

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最早由挪威的Eirik Chambe-Eng和Haavard Nord于1991年开发,1994年成立了Trolltech公司。最初,Qt是作为商业授权的跨平台开发库发布,2000年Trolltech为开源社区发布了遵循GPL许可证的开源版本。2008年,诺基亚收购了Trolltech,并引入了LGPL授权模式。此后,诺基亚联合英特尔开发了MeeGo操作系统,尽管该系统未能成功推广,但Qt的开源和商业授权业务也得到了进一步发展。2011年,Digia公司收购了Qt的商业授权业务,并在2014年成立了Qt公司,独立运营Qt的商业授权业务。

Qt和KDE

Qt和KDE的历史有着密切的联系。KDE是Linux操作系统的桌面环境之一,它与GNOME竞争。由于Qt最初是商业授权软件,这使得KDE社区在使用Qt时面临商业授权的风险。为了克服这一问题,Trolltech决定为Qt添加GPL开源授权,允许开发者自由使用Qt开发开源应用程序。这一举措使得KDE社区得以继续发展,并解决了其与GNOME的竞争问题。

Qt的开源授权包括两种模式:GPL(GNU General Public License)和LGPL(GNU Lesser General Public License)。GPL要求任何使用Qt的程序必须开源,而LGPL则允许开发者在不修改Qt库的情况下,使用Qt库开发商业应用程序。

Qt和智能手机

Qt目前支持包括Android、iOS、WinPhone等在内的主流智能手机操作系统。尽管MeeGo操作系统最终未能成功推广,但其衍生版Sailfish(旗鱼)和Tizen(泰泽)系统仍然在智能手机领域有一定影响。Qt的开源版本也为这些系统提供了支持。

Qt公司推出了针对移动开发的商业版本,开发者可以使用该版本开发Android、iOS、WinPhone应用。如果不涉及商业用途,开源版本也足以满足大多数开发需求。

Qt 商业公司:Qt | Tools for Each Stage of Software Development Lifecycle
Qt 开源项目:The Qt Project

二、QT的下载

官网https://www.qt.io/zh-cn/https://www.qt.io/zh-cn/

官网下载

下载有以下两种

1、下载地址:Qt | 软件开发全周期的各阶段工具

2、进入官网后,点击Download.Try.

选择社区版【community】,并下拉页面:

可以看见

配置

下载完成后,找到下载器所在的文件夹,确保下载器在该文件夹之后,点击鼠标右键,点击【在终端中打开,这样就可以打开终端并使其工作目录在这个文件下。

注册登录后:

如图勾选,点击【下一步

选择自定义安装文件夹,点击【自定义安装】,勾选后点击【下一步】:

如图勾选,点击【筛选】,这样可以看到很多可以下载的版本:

然后,一直点击【下一步】即可:

这一步根据网速耗时。

点击【完成】

三、简单编程

创建

选择项目模板后点击【选择】,一般选择【Application(Qt)】下的【Qt Widgets Application】即可:

输入【项目名称】,选择【项目路径】,点击【下一步】:
【注意】项目名称和项目路径不能包含中文符号、空格、特殊字符等

构建

选择构建工具:
qmake是Qt提供的构建工具,用于简化 Qt 项目的构建过程。
CMake是一个跨平台的开源构建工具,用于管理和构建 C++ 程序的软件项目。
Qbs,全称:Qt Build Suite,是由Qt官方提供的一个跨平台构建工具,用于构建和管理Qt和非Qt项目。它是Qt Creator集成开发环境(IDE)的一部分,但也可以独立使用。

选择基础类和主类的名字

基础类提供了QMainWindow、QWidget、QDialog,选择默认的QMainWindow即可,QWidget要轻量简单一点,也可以,QDialog用的少。主类Class Name可以自定义,不过要符合C++的语言规范

选择构建套件

  • 使用QtCreator编写时,必须选择MinGW编译套件,例如选择Desktop Qt 6.5.3 MinGW 64-bit。
  • 如果使用Microsoft Visual Studio编写Qt程序则必须选择MSVC编译套件,这个后文有说明
  • 出现黄色感叹号不用管他

点击【完成】

运行一下

有窗口弹出即为成功。

常用快捷键

基础操作

  • 运行程序Ctrl + R
  • 编译项目Ctrl + B
  • 打开帮助文档F1
    • 连续点击 F1 可跳转到帮助界面。

代码导航与编辑

  • 跳到符号定义F2Ctrl + 鼠标点击
  • 注释/取消注释Ctrl + /
  • 字体缩放Ctrl + 鼠标滚轮
  • 整行移动代码Ctrl + Shift + ↑ 或 ↓
  • 自动对齐Ctrl + I
  • .h.cpp 文件间跳转F4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/69177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL用户授权、收回权限与查看权限

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

spring boot中使用spring-security案例

项目结构 src └── main ├── java │ └── com.example.securitydemo │ ├── RestapiApplication.java │ ├── config │ │ └── SecurityConfig.java │ ├── controller │ │ └── UserController.java │ └── service │ └── CustomUserDetailsS…

XML实体注入漏洞攻与防

JAVA中的XXE攻防 回显型 无回显型 cve-2014-3574

996引擎 - NPC-添加NPC引擎自带形象

996引擎 - NPC-添加NPC引擎自带形象 截图参考添加NPC参考资料截图参考 添加NPC 编辑NPC表:Envir\DATA\cfg_npclist.xls 1.1. 需要临时隐藏NPC时可以在id前加 // 1.2. 如果NPC朝向不对,可以调整dir 列。(按8方向,上是0顺时针数。我这里给的4) 1.3. 形象代码:NPC代码、怪物…

mysql create table的用法

在MySQL中创建表的基本语法如下: CREATE TABLE table_name (column1 datatype,column2 datatype,column3 datatype,... );这里是一个例子,假设我们要创建一个名为employees的表,包含以下字段: id:一个整数类型的主键…

云计算架构学习之LNMP架构部署、架构拆分、负载均衡-会话保持

一.LNMP架构部署 1.1. LNMP服务搭建 1.磁盘信息 2.内存 3.负载信息 4.Nginx你们公司都用来干嘛 5.文件句柄(文件描述符 打开文件最大数量) 6.你处理过系统中的漏洞吗 SSH漏洞 7.你写过什么shell脚本 8.监控通过什么告警 zabbix 具体监控哪些内容 9.mysql redis查询 你好H…

页高速缓存与缓冲区缓存的应用差异

页高速缓存(Page Cache)与缓冲区缓存(Buffer Cache)是计算机系统中用于提高数据访问性能的两种不同类型的缓存机制,它们的差异主要体现在以下几个方面: 缓存目的 页高速缓存:主要用于加速对磁…

C语言程序设计:算法程序的灵魂

文章目录 C语言程序设计:算法程序的灵魂算法数据结构程序数据结构算法数值运算算法非数值运算算法 简单的算法举例【例2.1】求12345【例2.2】有50个学生,要求输出成绩在80分以上的学生的学号和成绩 简单的算法举例【例2.3】判定2000—2500年中的每一年是…

第28章 测试驱动开发模式:深入绿条模式及相关技术

写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…

SpringAI基于API对大语言模型调用

引言 随着人工智能技术的迅猛发展,大型语言模型(LLM)在各个领域的应用越来越广泛。SpringAI作为一个旨在简化AI集成的框架,为开发者提供了高效、便捷的工具来连接和调用这些大模型。本文将详细探讨如何使用SpringAI整合通义千问等…

Python 在Word中添加、或删除超链接

在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超链接,用户可以轻松地导航到相关信息,从而增强文档的互动性和可读性。本文将介绍如何使用Python在Word中添加超链接、或删除Word文档中的超…

Spring 源码学习(七)——注解后处理器-2

五 InitDestroyAnnotationBeanPostProcessor 类 1 属性 InitDestroyAnnotationBeanPostProcessor 类用于处理初始化与销毁注解;其中第一个属性为用于标识初始化方法与销毁方法注解类型的 initAnnotationType 与 destroyAnnotationType 属性、还有一个用于标识执行顺…

概率论里的特征函数,如何用卷积定理去理解

概率论里的特征函数,如何用卷积定理去理解_哔哩哔哩_bilibili

Unity入门1

安装之后无法获得许可证,可以考虑重装 新建项目 单击空白处生成脚本 双击c#文件 会自动打开vstudio 检查引用 如果没有引用,重开vstu,或者重新加载项目 hierarchy层级 scenes场景 assets资产 inspector督察 icon图标 资源链接&…

如何跨互联网adb连接到远程手机-蓝牙电话集中维护

如何跨互联网adb连接到远程手机-蓝牙电话集中维护 --ADB连接专题 一、前言 随便找一个手机,安装一个App并简单设置一下,就可以跨互联网的ADB连接到这个手机,从而远程操控这个手机做各种操作。你敢相信吗?而这正是本篇想要描述的…

单片机基础模块学习——按键

一、按键原理图 当把跳线帽J5放在右侧,属于独立按键模式(BTN模式),放在左侧为矩阵键盘模式(KBD模式) 整体结构是一端接地,一端接控制引脚 之前提到的都是使用了GPIO-准双向口的输出功能&#x…

第25篇 基于ARM A9处理器用C语言实现中断<一>

Q:怎样理解基于ARM A9处理器用C语言实现中断的过程呢? A:同样以一段使用C语言实现中断的主程序为例介绍,和汇编语言实现中断一样这段代码也使用了定时器中断和按键中断。执行该主程序会在DE1-SoC的红色LED上显示流水灯&#xf…

Baklib如何提升企业的内容管理效率与协作能力

内容概要 在现代企业中,内容管理的有效性直接影响到工作效率、团队协作和创新能力。随着信息量的不断增加,企业亟需一个系统化的平台来高效处理和管理这些内容。Baklib作为一款先进的内容管理平台,通过其丰富的功能和灵活的应用场景&#xf…

debian12.9编译freeswitch1.10.12【默认安装】

服务器操作系统 cat /etc/os-release PRETTY_NAME"Debian GNU/Linux 12 (bookworm)" NAME"Debian GNU/Linux" VERSION_ID"12" VERSION"12 (bookworm)" VERSION_CODENAMEbookworm IDdebian HOME_URL"https://www.debian.org/&quo…

【2024年终总结】深圳工作生活评测

距离上次写年终总结已经过了一年半了,这一年半中哪怕经历了很多的事情,但是感觉又没发生什么。想写一些骚话,却总觉得自己无法完全表达,便也就这样,静静地记录下这一段时光。 现在是2025年,春节前的时光&am…