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

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...

【Java多线程从青铜到王者】单例设计模式(八)
wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本,sleep也是可以指定时间的,也就是说时间一到就会解除阻塞,继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒),wait能被notify提前唤醒…...