QT 占位符的用法

这段代码是 Qt 中常用的字符串格式化方法,用于动态生成带有变量值的字符串。以下是详细的拆解和解释:
QString("Elapsed time: %1 seconds").arg(elapsed_seconds.count())

1. QString 的构造

QString(“Elapsed time: %1 seconds”) 创建了一个带有占位符的字符串。

%1 是 占位符,表示这个位置将会被后续 arg() 函数传入的值替代。
%1 以数字表示,占位符可以有多个,例如 %1、%2、%3 等,分别对应 arg() 函数中的第一个、第二个、第三个参数。
该字符串本质上是模板,允许动态插入内容。

2. arg() 方法

arg() 是 QString 的成员函数,用于替换占位符 %1, %2 等。
语法:

cpp
复制
编辑
QString QString::arg(const QVariant &value, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const;
value: 要插入到占位符中的值。
可以是基本类型(如 intdouble)或 QString 等。
如果是数字,arg() 会自动将其转换为字符串。
fieldWidth (可选): 设置占位符的宽度,默认值为 0。
如果指定宽度且值不足宽度,会用 fillChar 填充。
fillChar (可选): 填充字符,默认为空格字符 ' '

3. elapsed_seconds.count()

elapsed_seconds 是一个 std::chrono::duration 类型的对象。

count() 是 std::chrono::duration 的方法,用于获取该时间间隔的数值。
这里的返回值是一个 double 类型,表示经过的时间,以秒为单位。

4. 合成解释

完整表达式:

cpp
复制
编辑
QString("Elapsed time: %1 seconds").arg(elapsed_seconds.count())
模板字符串: "Elapsed time: %1 seconds" 中的 %1 是占位符。
插入值: arg(elapsed_seconds.count()) 将 elapsed_seconds.count() 的值(例如 2.00123)替换到占位符 %1 中。
生成结果: 得到完整的字符串,例如 "Elapsed time: 2.00123 seconds"

5. 使用多个占位符

如果模板字符串中有多个占位符(如 %1, %2, %3),可以依次传入参数:

cpp

复制
编辑
QString("Time: %1 seconds, Count: %2").arg(2.5).arg(10)
%1 被替换为 2.5%2 被替换为 10。
结果为:"Time: 2.5 seconds, Count: 10"

6. 常见用法

指定宽度和填充字符
cpp
复制
编辑
QString(“Elapsed time: %1 seconds”).arg(2.5, 8, ‘0’);
宽度为 8,不足部分用字符 ‘0’ 填充。
结果:“Elapsed time: 00002.5 seconds”。
多个动态值

cpp
复制
编辑
QString("Coordinates: X=%1, Y=%2").arg(123).arg(456);
替换 %1123,替换 %2456。
结果:"Coordinates: X=123, Y=456"

总结
QString(“Elapsed time: %1 seconds”).arg(elapsed_seconds.count()) 的作用是动态生成字符串,按顺序用 arg() 的参数替换字符串中的占位符 %1。它是 Qt 中非常方便的字符串格式化工具,支持多种数据类型、宽度控制和多占位符替换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/67625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2024 年度总结】从小白慢慢成长

【2024 年度总结】从小白慢慢成长 1. 加入 CSDN 的契机2. 学习过程2.1 万事开头难2.2 下定决心开始学习2.3 融入技术圈2.4 完成万粉的目标 3. 经验分享3.1 工具的选择3.2 如何提升文章质量3.3 学会善用 AI 工具 4. 保持初心,继续前行 1. 加入 CSDN 的契机 首次接触…

如何通过云计算优化网站性能?

随着互联网的迅猛发展,网站的性能已经成为用户体验的关键因素之一。响应速度慢、加载时间长,甚至服务器崩溃都会直接影响用户的满意度,进而影响企业的品牌形象和盈利能力。而云计算提供了一个高效、灵活、可扩展的解决方案,帮助企…

【C++篇】红黑树封装 实现map和set

目录 前言: 一,库中map和set的大致结构 二,模拟实现 2.1,大致框架 2.2,复用红黑树实现insert接口 2.3,迭代器iterator的实现 operator()的实现: operator--()的实现: 对inser…

面试-业务逻辑3

应用 小明随机拿一些带有编号的积木组成一排,数字编号可能相同。小明让小刚找到这排积木中数字相同且所处位置最远的2块积木,并计算他们的距离。 实现 N int(input("请输入积木总数:")) a_list list()for i in range(0, N):a …

写作利器:如何用 PicGo + GitHub 图床提高创作效率

你好呀,欢迎来到 Dong雨 的技术小栈 🌱 在这里,我们一同探索代码的奥秘,感受技术的魅力 ✨。 👉 我的小世界:Dong雨 📌 分享我的学习旅程 🛠️ 提供贴心的实用工具 💡 记…

RabbitMQ 高级特性

目录 1.消息确认 1.1 消息确认机制 1.2 手动确认方法 1. 2.1肯定确认 1.2.2 否定确认 1.3 SpringBoot 代码示例 1.3.1 配置确认机制 1.3.2 配置队列,交换机,绑定关系 1.3.3 生产者(向 rabbitmq 发送消息) 1.3.4 消费者(消费队列中的信息) 2.持久性 2.1 交换机…

AIGC视频生成模型:Meta的Emu Video模型

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video,作为Meta发布的第二款视频生成模型,在视频生成领域发挥关键作用。 🌺优质专栏回顾&am…

面向对象的程序设计:以对象的方式进行思考

1 理解接口与实现的区别 以上一篇文章的电视机需要插电使用的例子继续来讲解: 对电视而言,插电使用,只需要标准的插座即可,具体的电从哪里来,是火力发电厂,或是太阳能发电,亦或是畜电池逆变供电,电视机是不需要关心的。 发电厂或供电设备属于实现,220V交流电插座属于…

网络协议如何确保数据的安全传输?

网络协议作为计算机网络通信的基石,其设计不仅旨在实现数据的有效传输,更在于确保数据在传输过程中的安全性。对于网络协议如何保障数据安全传输,是很多企业和网络IT部门的重点,本文将从多方面概述相关方法。 加密与解密机制 1. …

C# 以管理员方式启动程序全解析

引言 在 Windows 应用程序开发的领域中,C# 语言凭借其强大的功能和广泛的适用性,被众多开发者所青睐。然而,在实际的开发过程里,我们常常会遭遇这样的情况:程序需要访问特定的系统资源,像是系统文件夹、注…

要获取本地的公网 IP 地址(curl ifconfig.me)

文章目录 通过命令行查询(适用于 Linux/Mac/Windows)Linux/MacWindows 注意事项 要获取本地的公网 IP 地址,可以通过以下简单的方法: 通过命令行查询(适用于 Linux/Mac/Windows) Linux/Mac 打开终端。输入…

MySQL 数据库 UDF 提权

免责声明 本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动,包括但不限于未经授权访问计算机系统、网络或数据。 作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何责…

VUE3 vite下的axios跨域

在使用 Vite 开发时,如果你的前端项目需要请求后端 API,且后端和前端不在同一个域上,可能会遇到跨域问题。跨域是指浏览器出于安全考虑,阻止了前端网页向不同源(域名、协议、端口)发送请求。 解决跨域问题…

【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…

rust学习-函数的定义与使用

rust学习-函数的定义与使用 1. 函数的基本定义2. 函数的参数多个参数 3. 返回值提前返回 4. 函数调用5. 函数的所有权和借用传递所有权借用 6. 函数作为参数和返回值函数作为参数函数作为返回值 7. 泛型函数8. 函数注释(文档注释) 1. 函数的基本定义 在R…

【Linux 源码】内核态到用户态

文章目录 1. 由来2. 流程图3. 中断3.1 概念3.2 8259A芯片3.4 中断时的栈处理3.4.1 相同特权级3.4.2 不同特权级 3.5 中断流程3.6 定位中断程序3.7 中断流程步骤总结 4. 源码4.1 move_to_user_mode4.2 0号进程4.3 TSS和LDT在GDT表排布4.4 ldt中的0x17栈段 5. 总结 1. 由来 ​ 首…

雷电9最新版安装Magisk+LSPosd(新手速通)

大家好啊!我是NiJiMingCheng 我的博客:NiJiMingCheng 在安卓系统的定制与拓展过程中,获取 ROOT 权限以及安装各类框架是进阶玩家常用的操作,这可以帮助我们实现更多系统层面的个性化功能。今天,我将为大家详细介绍如何…

【vim】vim编辑器如何设置行号

vim编辑器如何设置行号 一、**临时设置行号**二、永久设置行号2.1. **用户配置文件方式(针对当前用户)**2.2. **全局配置文件方式(谨慎使用,会影响所有用户)** 在Vim中设置行号有以下两种常见的方法: 一、…

《Linux服务与安全管理》| 邮件服务器安装和配置

《Linux服务与安全管理》| 邮件服务器安装和配置 目录 《Linux服务与安全管理》| 邮件服务器安装和配置 1.在Server01上安装dns、postfix、dovecot和telnet,并启动 2.在Server01上配置DNS服务器,设置MX资源记录 3.在server1上…

基于 K-Means 聚类分析实现人脸照片的快速分类

注:本文在创作过程中得到了 ChatGPT、DeepSeek、Kimi 的智能辅助支持,由作者本人完成最终审阅。 在 “视频是不能 P 的” 系列文章中,博主曾先后分享过人脸检测、人脸识别等相关主题的内容。今天,博主想和大家讨论的是人脸分类问题。你是否曾在人群中认错人,或是盯着熟人的…