Qt6入门教程 4:Qt Creator常用技巧
在上一篇Qt6入门教程 3:创建Hello World项目中,通过创建一个Qt项目,对Qt Creator已经有了比较直观的认识,本文将介绍它的一些常用技巧。
Qt Creator启动后默认显示欢迎页面

创建项目已经用过了,打开项目也很简单,就是打开一个已经存在的项目。
项目历史记录非常有用,能快速打开最近使用过的项目。
会话记录及管理不知道是干啥的,平时也用不到。
Get Started、示例和教程一看就是些学习资料,不过都是英文的,搭配百度翻译自学效率更高哦。
编译、运行及调试在上篇中已做介绍。
一.模式选择
1.编辑
在项目历史记录中打开上篇新建的HelloWorld项目,会自动切换到编辑页面
代码编辑区顶部工具栏会显示文件编码格式,点击该编码格式,会弹出“文件编码”对话框,方便设置当前文件编码。
1.1缩放字体
代码编辑区的字母看起来非常小,可以使用快捷键Ctrl+“+”来放大字体,或者使用Ctrl+“-”来缩小字体。使用Ctrl+滚轮能达到同样的效果。使用Ctrl+0可以使字体还原到默认大小(100%)。
PS:刚发现记事本也支持这几种快捷键
1.2更换主题
如果对代码的配色不喜欢,可以换一个主题。Qt Creator默认的主题是白底的,看着比较晃眼,我比较喜欢Dark主题。可以在"首选项"窗口中进行配置
打开“首选项”窗口有两种方法,一是菜单项“工具”—>“外部”—>“配置...”;二是菜单项“编辑”—>“Preferences...”。
1.3设置文件编码

默认编码为UTF-8,Default line endings为Windows(CRLF),这两项不用修改。当默认编码为UTF-8时,UTF-8 BOM有三个选项,如下表所示:
| UTF-8 BOM | 说明 |
|---|---|
| 如果编码是UTF-8则添加 | 新添加、编辑并保存的文件是UTF-8 BOM格式 |
| 目前存在了则保留 | 如果文件是UTF-8格式,编辑并保存后依然是UTF-8格式;如果文件是UTF-8 BOM格式,编辑并保存,这个文件的BOM会保留。 |
| 总是删除 | 如果文件是UTF-8格式,编辑并保存后依然是UTF-8格式;如果文件是UTF-8 BOM格式,编辑并保存,这个文件的BOM会被删除,变为UTF-8格式。 |
这里初学Qt的话,默认就行。实践中我们可以设置为“总是删除”,因为UTF-8 BOM虽然在Windows上支持的比较好,但是Windows外的其他系统可能会导致问题,比如说Linux系统下,默认的编码就是UTF-8不带BOM。
1.4分栏
点击代码编辑区右上角的分栏按钮,可弹出菜单进行分栏(上下分栏)、左右分栏和在新窗口的打开文件;对应的菜单项是“控件”—>“分栏”、“控件”—>"左右分栏"和“控件”—>“在新窗口中打开”。这几个功能是非常实用的,可以在写代码时打开多个文件做参考。由于功能都差不多,这里只演示左右分栏。

点击右上角的关闭分栏按钮可以关闭相应的分栏。
1.5代码对齐
选中代码段后,使用快捷键Ctrl+I可以对齐代码。
1.6切换源文件和头文件
F4
1.7注释或取消注释
选中代码段后,使用快捷键Ctrl+/可以注释代码或取消注释。
2.设计
双击*ui文件,会自动切换到设计页面,设计页面在上篇中已经介绍,这里不再赘述。
3.调试
点击调试按钮“
”或快捷键F5,会自动切换到调试页面,关于调试,简单的打断点上篇已经介绍,如果想深入学习,详见:Qt基础之三十九:Qt Creator调试技巧
4.项目
点击项目按钮,切换到项目页面,默认显示的是当前构建套件的“构建设置”页面
在“构建设置”页面中可以设置构建目录,还可以从构建步骤中大概推断出构建过程:Qt Creator会调用qmake生成makefile,然后调用本地的make系统(mingw32-make.exe或nmake.exe),执行生成的makefile构建脚本,从而完成项目构建。
“运行设置”里可以设置命令行参数,这在测试需要给main函数传递参数的应用场景时非常有用。

双击套件列表中的某个套件,可以切换到该套件,比如双击Qt 5.12.6(MinGW 32)这个套件。
可以看到HelloWord项目目前配置了两个套件,且当前套件为Qt 5.12.6(MinGW 32)。

5.帮助
点击帮助按钮,切换到帮助页面
帮助页面将Qt Assistant整合了进来,包含书签、查找、目录和索引等几个导航模式(默认是目录),可以在帮助中查看Qt和Qt Creator的各种信息。
当我们在开发过程中,遇到不了解的Qt方法或类,可以切换到索引导航,然后进行搜索,帮助文档里面会有这个方法或类的介绍以及使用说明。下图是qDebug的帮助。
相比这种查看帮助的方式,我更喜欢直接用Qt Assistant。
二.输出面板
1.问题
用于显示程序编译时的错误和警告信息。
我打算用qDebug输出“Hello World”,但是故意不以分号结束。此时点击编译按钮,会在“问题”窗口中给出错误提示。
同时,“编译输出”窗口也会给出编译错误信息。
2.应用程序输出
用于显示程序运行过程中公输出的所有信息,主要用于程序开发期间的调试。
我们把分号加上,编译并运行,“应用程序输出”窗口打印了Hello World。
3.搜索结果
用于显示执行了搜索操作后的结果信息。这个窗口实际上和“查找/替换”功能密切相关。
在代码编辑器按下快捷键Ctrl+F,或者点击菜单项“编辑”—>“查找/替换”,会出现“查找/替换”工具条,但是此工具条只能用于查找当前文件,比如查找Hello
点击“高级...”按钮,会自动切换到搜索结果窗口,这里就支持全局查找和替换啦
4.编译输出
用于显示程序编译过程输出的相关信息。从图中可以看到是调用g++进行编译的。

5.Terminal
提供了和CMD窗口类似的功能
原文链接:Qt6入门教程 4:Qt Creator常用技巧-CSDN博客
相关文章:
Qt6入门教程 4:Qt Creator常用技巧
在上一篇Qt6入门教程 3:创建Hello World项目中,通过创建一个Qt项目,对Qt Creator已经有了比较直观的认识,本文将介绍它的一些常用技巧。 Qt Creator启动后默认显示欢迎页面 创建项目已经用过了,打开项目也很简单&#…...
阴盘奇门八字排盘马星位置计算方法php代码
如下位置,马星的四个位置。 计算方法: 1。先根据出生年月日,计算得八字四柱。比如 2024年01月09日,四柱为 其中时柱地支为“申” 2。然后根据以下对应的数组,来找到id号,即马星位置。 根据下表来找到&am…...
vue3 使用 jsoneditor
vue3 使用 jsoneditor 在main.js中引入 样式文件 import jsoneditor/dist/jsoneditor.css复制代码放到文件中就能用了 jsoneditor.vue <template><div ref"jsonDom" style"width: 100%; height: 460px"></div> </template> <…...
若依前后端分离版使用mybatis-plus实践教程
1、根目录得pom加入依赖 <properties><mybatis-plus.version>3.5.1</mybatis-plus.version> </properties> <dependencies><!-- mp配置--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus…...
SpringBoot-Dubbo-Zookeeper
Apache Dubbo:https://cn.dubbo.apache.org/zh-cn/overview/home/ 依赖 <!--dubbo--> <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.3</versio…...
华为HCIE课堂笔记第十二章 ICMPv6和NDP协议
第十二章 ICMPv6和NDP 12.1 背景 ICMPv6协议用于IPV6协议的消息传递:地址解析、重复地址检测、无状态地址配置、NDP协议、路径MTU发现。 12.2 ICMPv6介绍 ICMPv6的头部字段包含Type字段、Code字段、校验和字段。 消息分为两种: 查错消息ÿ…...
GNSS科研常用相关网站及资源
代码类: Github GitHub: Let’s build from here GitHub 导航相关开源项目 GNSS:RTKLIB、GAMP II-GOOD、GPSTest、GNSSLogger 组合导航:ignav、VINS、Multi_Sensor_Fusion Gitee(从Github导入后快速下载库) Gi…...
进程的创建与回收学习笔记
目录 一、进程内容: 二、进程常用命令 三、创建子进程 四、子进程进阶 五、进程的退出 六、进程的回收 一、进程内容: 程序: 存放在磁盘上的指令和数据的有序集合(文件) 静态的 进程: 执行一个程序所…...
【CCNet】《CCNet:Criss-Cross Attention for Semantic Segmentation》
ICCV-2019 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 Experiments on Cityscapess5.3 Experiments on ADE20K5.4 Experiments on COCO 6 Conclusion(own) 1 Ba…...
Qt QSQlite数据库插入字符串中存在单个双引号或单个单引号解决方案
1. 前言 当进行数据库写入或更新时,有时会遇到存在字符串中包含单个双引号或者单引号。 2. 单引号和双引号""作用 在数据库中,字符串常量时需要用一对英文单引号或英文双引号""将字符串常量括起来。 比如: select * …...
Linux系统中的IP地址、主机名、和域名解析
1.IP地址 每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯 IP地址主要有2个版本,V4版本和V6版本(V6很少用,暂不涉及) IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字&…...
soc算法【周末总结】
1 实验一(SOC误差30%放电实验) 1.1 实验过程 1、对电池包进行充电,将昨天放空的电池包进行充电,充电至SOC40%左右; 2、电池包SOC为38%时,手动修改SOC值为70%,开始放电 3、SOC由70%缓慢降至4…...
SpringBoot之优化高并发场景下的HttpClient并提升QPS
HttpClient优化思路 使用连接池(简单粗暴) 长连接优化(特殊业务场景) httpclient和httpget复用 合理的配置参数(最大并发请求数,各种超时时间,重试次数) 异步请求优化࿰…...
go-zero 如何在任意地方获取yaml中的值
1、config配置文件中新增全局变量 package configimport "github.com/zeromicro/go-zero/rest"type Config struct {rest.RestConfDB struct {DataSource string}Redis struct {Addr stringPassWord stringUserName string}Auth struct {AccessSecret stringAcc…...
C++20结构化绑定应用实例(二百五十六)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
改进YOLOv8注意力系列四:结合中心化特征金字塔EVCBlock、大核卷积注意力LKA_Attention、全局注意力MobileViTAttention
改进YOLOv8注意力系列三:结合CrissCrossAttention、ECAAttention、EMAU期望最大化注意力 代码大核卷积注意力LKA_Attention中心化特征金字塔EVCBlock全局注意力MobileViTAttention加入方法各种yaml加入结构本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方…...
idea中使用Lombok 失效,@Slf4j 找不到符号的解决办法
文章目录 一、前言二、问题排查和解决方案三、 其他解决方案3.1 另一种解决方案3.2 参考文章 一、前言 今天在一个多module工程中,新增了一个 springboot(版本 2.2.4.RELEASE) module,像往常一样,我引入了lombok依赖&…...
MySQL修炼手册8:约束与完整性:保证数据的一致性
目录 写在开头1 主键与唯一键约束1.1 PRIMARY KEY约束的作用1.2 主键的复合使用1.3 主键的修改与删除1.4 UNIQUE约束的应用场景1.5 主键与唯一键约束的性能影响1.6 主键的自动增长1.7 主键的最佳实践1.8 独特性与业务需求1.9 避免过度使用唯一约束1.10 主键与唯一键的关系 2 外…...
React入门 - 03(初识 React 组件和 JSX)
本章内容 目录 1.初识 React 组件2.关于 JSX 继上一节的工程案例,我们这一节主要了解一下 React组件和 “JSX 语法”。 前置知识点:ES6模块化&继承 1.初识 React 组件 1、打开 src/index.js文件(项目的入口文件)内容&…...
华为OD机试 - 反射计数(Java JS Python C)
题目描述 给定一个包含 0 和 1 的二维矩阵。 给定一个初始位置和速度,一个物体从给定的初始位置出发,在给定的速度下进行移动,遇到矩阵的边缘则发生镜面发射。 无论物体经过 0 还是 1,都不影响其速度。 请计算并给出经过 t 时间单位后,物体经过 1 点的次数。 矩阵以左…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
