当前位置: 首页 > article >正文

(一)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.kler.cn/a/519241.html

相关文章:

  • HTML从入门到精通:链接与图像标签全解析
  • 在Qt中实现点击一个界面上的按钮弹窗到另一个界面
  • 路径总和(力扣112)
  • ios打包:uuid与udid
  • impact 影响分析学习笔记(一)
  • 激活版,快速安装
  • Vivado生成X1或X4位宽mcs文件并固化到flash
  • ES设置证书和创建用户,kibana连接es
  • 【前沿聚焦】机器学习的未来版图:从自动化到隐私保护的技术突破
  • 通过亚马逊云科技Bedrock打造自定义AI智能体Agent(上)
  • Python 字符串加密
  • 什么是业务对象
  • C++练习 —— 命名空间、引用、类的定义、构造函数和析构函数、运算符重载、const成员函数、类相关OJ题
  • 2024:人工智能大模型的璀璨年代
  • 在 ASP.NET Core 6.0 Web API 中将 Excel 文件数据上传并保存到数据库中
  • 数据结构初阶之栈的介绍与栈的实现
  • C语言程序设计十大排序—希尔排序
  • 代码随想录-训练营-day14
  • 设计模式Python版 工厂方法模式
  • 【C语言】字符函数与字符串函数
  • 探寻 UTF - 8 和 GBK 的编码 “黑匣子”
  • 关注搜索引擎蜘蛛压力
  • vim 中粘贴内容时提示: -- (insert) VISUAL --
  • 【YOLOv11改进- 主干网络】YOLOv11+MobileNetV2(2018): 相比于 MobileNetV1 而言准确率更高,模型更小;
  • 【Linux】列出所有连接的 WiFi 网络的密码
  • 《Kotlin核心编程》下篇