(一)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
可跳转到帮助界面。
代码导航与编辑
- 跳到符号定义:
F2
或Ctrl + 鼠标点击
- 注释/取消注释:
Ctrl + /
- 字体缩放:
Ctrl + 鼠标滚轮
- 整行移动代码:
Ctrl + Shift + ↑ 或 ↓
- 自动对齐:
Ctrl + I
- 在
.h
和.cpp
文件间跳转:F4
相关文章:
(一)QT的简介与环境配置WIN11
目录 一、QT的概述 二、QT的下载 三、简单编程 常用快捷键 一、QT的概述 简介 Qt(发音:[kjuːt],类似“cute”)是一个跨平台的开发库,主要用于开发图形用户界面(GUI)应用程序,…...
Qt监控系统辅屏预览/可以同时打开4个屏幕预览/支持5x64通道预览/onvif和rtsp接入/性能好
一、前言说明 在监控系统中,一般主界面肯定带了多个通道比如16/64通道的画面预览,随着电脑性能的增强和多屏幕的发展,再加上现在监控摄像头数量的增加,越来越多的用户希望在不同的屏幕预览不同的实时画面,一个办法是打…...
Python元组详解:不可变序列的魅力
Python元组详解:不可变序列的魅力 在Python中,元组(Tuple)是一种非常重要的数据结构。它与列表(List)类似,但有一个关键的区别:元组是不可变的。这意味着一旦创建了一个元组&#x…...
Qt5离线安装包无法下载问题解决办法
想在电脑里装一个Qt,但是直接报错。果然还是有解决办法滴。 qt download from your ip is not allowed Qt5安装包下载办法 方法一:简单直接,直接科学一下,不过违法行为咱不做,遵纪守法好公民(不过没办法阻…...
【蓝桥杯】43695.填字母游戏
题目描述 小明经常玩 LOL 游戏上瘾,一次他想挑战 K 大师,不料 K 大师说: “我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩 LOL 了”。 K 大师在纸上画了一行 n 个格子,要小明和他交替往其中填入…...
GD32的SPI程序读写程序,SPI特性研究
拿到一个SPI芯片的时序图: 能够知道这个过程需要24位,因此SPI的的帧长度设置为8位,然后读写3次。 spi_init_struct.frame_size SPI_FRAMESIZE_8BIT;如果帧长度设置为16位,读写两次就有32位了。 当然也可以设置帧长度为…...
PSD是什么图像格式?如何把PSD转为JPG格式?
在图形设计的世界里,Photoshop 文档(PSD)格式是 Adobe Photoshop 的原生文件格式,它允许设计师保存图像中的图层、蒙版、透明度和不同色彩模式等信息。对于需要进一步编辑的设计作品来说,PSD 文件提供了极大的灵活性。…...
[MoeCTF 2022]ezhtml
题目 查看页面源代码 有个/evil.js文件打开查看 看到了flag NSSCTF{e15f7f51-d1a0-4d1b-a96d-c987a4fe69a0} 到这里也就可以直接结束了 // 获取元素节点 var sx document.querySelector(#sx); // 获取 id 为 sx 的元素节点 var yw document.querySelector(#yw); // 获取…...
windows系统如何检查是否开启了mongodb服务
windows系统如何检查是否开启了mongodb服务!我们有很多软件开发,网站开发时候需要使用到这个mongodb数据库,下面我们看看,如何在windows系统内排查,是否已经启动了本地服务。 在 Windows 系统上,您可以通过…...
在软件开发中纳入数据安全措施的最佳实践
在当今数字化时代,网络安全已成为各类规模企业的首要任务。随着网络威胁发生的频率日益增加且复杂程度不断提高,企业定期更新安全协议以保护敏感数据并防止未经授权的访问至关重要。 通过定期更新安全协议确保网络安全 我们深知网络安全的重要性&#…...
BAHD酰基转移酶对紫草素的手性催化-文献精读105
Two BAHD Acyltransferases Catalyze the Last Step in the Shikonin/Alkannin Biosynthetic Pathway 两个BAHD酰基转移酶催化了紫草素/左旋紫草素生物合成途径中的最后一步 一个BAHD酰基转移酶专门催化紫草素的酰基化,而另一个BAHD酰基转移酶则仅催化紫草素的对映…...
信息收集 CTF 1 挑战通关指南
大家好!今天我想和大家分享 Information Gathering CTF 1 挑战的完整攻略。我将解释我是如何逐步攻克每一个 flag,并使用了哪些工具。放心,我不会直接给出 flag,因为学习的目的不是直接提交答案,而是掌握解决问题的方法…...
Vue 3 中的计算属性:只读与可读写的使用与案例
在 Vue 3 中,计算属性(Computed Properties)是一种强大的工具,它允许我们根据响应式数据动态计算并返回一个新的值。计算属性具有缓存机制,只有当依赖的响应式数据发生变化时,才会重新计算。本文将详细介绍…...
Day24-【13003】短文,数据结构与算法开篇,什么是数据元素?数据结构有哪些类型?什么是抽象类型?
文章目录 13003数据结构与算法全书框架考试题型的分值分布如何? 本次内容概述绪论第一节概览什么是数据、数据元素,数据项,数据项的值?什么是数据结构?分哪两种集合形式(逻辑和存储)?…...
Debian或Ubuntu系统中重置MySQL的root密码
你提供的步骤是针对在Debian或Ubuntu系统中重置MySQL的root密码的过程。以下是对你提供的步骤的详细说明和补充: 步骤 1.1 - 1.3:进入MySQL配置目录并使用debian-sys-maint账户登录MySQL # 进入MySQL配置目录 cd /etc/mysql/ # 使用vim编辑器打开debia…...
libOnvif通过组播不能发现相机
使用libOnvif库OnvifDiscoveryClient类, auto discovery new OnvifDiscoveryClient(QUrl(“soap.udp://239.255.255.250:3702”), cb.Build()); 会有错误: end of file or no input: message transfer interrupted or timed out(30 sec max recv delay)…...
实现B-树
一、概述 1.历史 B树(B-Tree)结构是一种高效存储和查询数据的方法,它的历史可以追溯到1970年代早期。B树的发明人Rudolf Bayer和Edward M. McCreight分别发表了一篇论文介绍了B树。这篇论文是1972年发表于《ACM Transactions on Database S…...
JVM常见知识点
在《深入理解Java虚拟机》一书中,介绍了JVM的相关特性。 1、JVM的内存区域划分 在真实的操作系统中,对于地址空间进行了分区域的设计,由于JVM是仿照真实的机器进行设计的,那么也进行了分区域的设计。核心区域有四个,…...
输入某年某月某日,判断这一天是这一年的第几天
""" 题目:输入某年某月某日,判断这一天是这一年的第几天 考虑特殊情况闰年 """ yearint(input("请输入年份:")) monthint(input("请输入月份: ")) dayint(input("请输入日期: "…...
12、本地缓存分布式缓存(未完待续)
1、哪些数据适合放入缓存? 即时性、数据一致性要求不高的访问量大且更新频率不高的数据(读多,写少) 2、本地缓存 1、本地缓存,如果是单体项目,部署到一台服务器上,就不存在什么问题ÿ…...
Spring MVC 综合案例
目录 一. 加法计算器 1. 准备工作 2. 约定前后端交互接口 需求分析 接口定义 3. 服务器端代码 4. 运行测试 二. 用户登录 1. 准备工作 2. 约定前后端交互接口 需求分析 接口定义 (1) 登录界面接口 (2) 首页接口 3. 服务器端代码 4. 运行测试 三. 留言板 1. 准备…...
【深入理解FFMPEG】命令行阅读笔记
这里写自定义目录标题 第三章 FFmpeg工具使用基础3.1 ffmpeg常用命令3.1.13.1.3 转码流程 3.2 ffprobe 常用命令3.2.1 ffprobe常用参数3.2.2 ffprobe 使用示例 3.3 ffplay常用命令3.3.1 ffplay常用参数3.3.2 ffplay高级参数3.3.4 ffplay快捷键 第4章 封装与解封装4.1 视频文件转…...
2025.1.26机器学习笔记:C-RNN-GAN文献阅读
2025.1.26周报 文献阅读题目信息摘要Abstract创新点网络架构实验结论缺点以及后续展望 总结 文献阅读 题目信息 题目: C-RNN-GAN: Continuous recurrent neural networks with adversarial training会议期刊: NIPS作者: Olof Mogren发表时间…...
嵌入式蓝桥杯电子赛嵌入式(第14届国赛真题)总结
打开systic 生成工程编译查看是否有问题同时打开对应需要的文档 修改名称的要求 5.简单浏览赛题 选择题,跟单片机有关的可以查相关手册 答题顺序 先从显示开始看 1,2 所以先打开PA1的定时器这次选TIM2 从模式、TI2FP2二通道、内部时钟、1通道设为直接2通道设置…...
【机器学习】深入探索SVM:支持向量机的原理与应用
目录 🍔 SVM引入 1.1什么是SVM? 1.2支持向量机分类 1.3 线性可分、线性和非线性的区分 🍔 小结 学习目标 知道SVM的概念 🍔 SVM引入 1.1什么是SVM? 看一个故事,故事是这样子的: 在很久以前的情人节…...
Leetcode40: 组合总和 II
题目描述: 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 代码思路ÿ…...
项目测试之MockMvc
文章目录 基础基础概念Mockxxx一般实现文件位置 实战MockMvc与Test注解不兼容RequestParams参数RequestBody参数 基础 基础概念 定义:是Spring框架提供的一种用于测试Spring MVC控制器的工具,它允许开发者在不启动完整的web服务器的情况下,…...
网易Android开发面试题200道及参考答案 (下)
说明原码、反码、补码的概念 原码:是一种简单的机器数表示法。对于有符号数,最高位为符号位,0 表示正数,1 表示负数,其余位表示数值的绝对值。比如,对于 8 位二进制数,+5 的原码是 00000101,-5 的原码是 10000101。原码的优点是直观,容易理解,但在进行加减法运算时,…...
PHP根据IP地址获取地理位置城市和经纬度信息
/** 根据IP地址 获取地理位置*/ function getLocationByIP($ip) {$url "http://ip-api.com/json/{$ip}?langzh-CN&fieldsstatus,message,country,countryCode,region,regionName,city,lat,lon,timezone,isp,org,as";$response file_get_contents($url);$data …...
AI Agent的多轮对话:提升用户体验的关键技巧
在前面的文章中,我们讨论了 AI Agent 的各个核心系统。今天,我想聊聊如何实现一个好用的多轮对话系统。说实话,这个话题我琢磨了很久,因为它直接影响到用户体验。 从一个槽点说起 还记得我最开始做对话系统时的一个典型场景&…...
在docker上部署nacos
一、首先下载nacos的docker镜像 docker pull nacos:2.5.0 二、然后下载nacos的安装包,这里是为了拿到他的配置文件。下载完解压缩后,以备后用 https://download.nacos.io/nacos-server/nacos-server-2.5.0.zip?spm5238cd80.6a33be36.0.0.2eb81e5d7mQ…...
ComfyUI实现老照片修复——AI修复老照片(ComfyUI-ReActor / ReSwapper)解决天坑问题及加速pip下载
AI修复老照片,试试吧,不一定好~~哈哈 2023年4月曾用过ComfyUI,当时就感慨这个工具和虚幻的蓝图很像,以后肯定是专业人玩的。 2024年我写代码去了,AI做图没太关注,没想到,现在ComfyUI真的变成了工…...
Win11画图工具没了怎么重新安装
有些朋友想要简单地把图片另存为其他格式,或是进行一些编辑,但是发现自己的Win11系统里面没有画图工具,这可能是因为用户安装的是精简版的Win11系统,解决方法自然是重新安装一下画图工具,具体应该怎么做呢?…...
Git Bash 配置 zsh
博客食用更佳 博客链接 安装 zsh 安装 Zsh 安装 Oh-my-zsh github仓库 sh -c "$(curl -fsSL https://install.ohmyz.sh/)"让 zsh 成为 git bash 默认终端 vi ~/.bashrc写入: if [ -t 1 ]; thenexec zsh fisource ~/.bashrc再重启即可。 更换主题 …...
《STL基础之hashtable》
【hashtable导读】STL为大家提供了丰富的容器,hashtable也是值得大家学习和掌握的基础容器,而且面试官经常会把它和hashmap混在一起,让同学们做下区分。因此关于hashtable的一些特性,比如:底层的数据结构、插入、查找元…...
Vue3组件重构实战:从Geeker-Admin拆解DataTable的最佳实践
一、前言 背景与动机 在当前的开发实践中,我们选择了开源项目 Geeker-Admin 作为前端框架的二次开发基础。其内置的 ProTable.vue 组件虽然提供了一定程度的开箱即用性,但在实际业务场景中逐渐暴露出设计上的局限性,尤其是其将 搜索条件表单…...
小智 AI 聊天机器人
小智 AI 聊天机器人 (XiaoZhi AI Chatbot) 👉参考源项目复现 👉 ESP32SenseVoiceQwen72B打造你的AI聊天伴侣!【bilibili】 👉 手工打造你的 AI 女友,新手入门教程【bilibili】 项目目的 本…...
关于圆周率的新认知
从自然对数底 的泰勒展开, 可以得出 的展开式, 它可以被认为是,以 0 为周期的单位 1 ,以 1 为周期的单位 1 ,以 2 为周期的单位 1 等所有自然数为周期的单位 1 分阶段合成(体现为阶乘的倒数)之…...
【趋势】《2024—2026金融科技十大趋势预测》一览
本白皮书基于新华三在金融行业的前沿实践和IDC的全球研究成果,深入分析了金融科技领域的十大关键趋势,旨在为金融机构提供前瞻性的战略指导和业务创新的参考。 导言 当前,在地缘政治冲突加剧、商业经济市场环境高度不确定、数字化业务加速发展的背景下,金融行业处于深度变…...
vim 中粘贴内容时提示: -- (insert) VISUAL --
目录 问题现象:解决方法:问题原因: 问题现象: 使用 vim 打开一个文本文件,切换到编辑模式后,复制内容进行粘贴时有以下提示: 解决方法: 在命令行模式下禁用鼠标支持 :set mouse …...
CAPL高级应用
CAPL高级应用 目录 CAPL高级应用1. 引言2. 多线程编程2.1 多线程编程简介2.2 多线程编程实现3. 数据库操作3.1 数据库操作简介3.2 数据库操作实现4. 网络通信4.1 网络通信简介4.2 网络通信实现5. 案例说明5.1 案例1:多线程编程实现5.2 案例2:数据库操作实现5.3 案例3:网络通…...
基于微信小程序的网上订餐管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
python的设计模式
设计模式是解决软件设计中常见问题的可重用解决方案。Python 作为一种灵活且强大的编程语言,支持多种设计模式的实现。以下是 Python 中常见的几种设计模式及其示例: 1. 单例模式(Singleton Pattern) 确保一个类只有一个实例&…...
EventBus事件总线的使用以及优缺点
EventBus EventBus (事件总线)是一种组件通信方法,基于发布/订阅模式,能够实现业务代码解耦,提高开发效率 发布/订阅模式 发布/订阅模式是一种设计模式,当一个对象的状态发生变化时,所有依赖…...
C++解决走迷宫问题:DFS、BFS算法应用
文章目录 思路:DFSBFSBFS和DFS的特点BFS 与 DFS 的区别BFS 的优点BFS 时间复杂度深度优先搜索(DFS)的优点深度优先搜索(DFS)的时间复杂度解释:空间复杂度总结:例如下面的迷宫: // 迷宫的表示:0表示可以走,1表示障碍 vector<vector<int>> maze = {{0, 0,…...
2025春招 SpringCloud 面试题汇总
大家好,我是 V 哥。SpringCloud 在面试中属于重灾区,不仅是基础概念、组件细节,还有高级特性、性能优化,关键是项目实践经验的解决方案,都是需要掌握的内容,正所谓打有准备的仗,秒杀面试官&…...
PostGIS笔记:PostgreSQL 数据库与用户 基础操作
数据库基础操作包括数据模型的实现、添加数据、查询数据、视图应用、创建日志规则等。我这里是在Ubuntu系统学习的数据库管理。Windows平台与Linux平台在命令上几乎无差异,只是说在 Windows 上虽然也能运行良好,但在性能、稳定性、功能扩展等方面&#x…...
Selenium配合Cookies实现网页免登录
文章目录 前言1 方案一:使用Chrome用户数据目录2 方案二:手动获取并保存Cookies,后续使用保存的Cookies3 注意事项 前言 在进行使用Selenium进行爬虫、网页自动化操作时,登录往往是一个必须解决的问题,但是Selenium每次…...
HarmonyOS简介:HarmonyOS核心技术理念
核心理念 一次开发、多端部署可分可合、自由流转统一生态、原生智能 一次开发、多端部署 可分可合 自由流转 自由流转可分为跨端迁移和多端协同两种情况 统一生态 支持业界主流跨平台开发框架,通过多层次的开放能力提供统一接入标准,实现三方框架快速…...
Unity URP 获取/设置 Light-Indirect Multiplier
Unity URP 获取/设置 Light-Indirect Multiplier 他喵的代码的字段名称叫:bounceIntensity ~~~~~~...