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 点的次数。 矩阵以左…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...