QString类arg方法扩展

Qt:QString 中的 arg 函数用法 1、Qstring QString::arg() 用字符串变量一次替换字符串中最小数值 QString i = "a"; // current file's number QString total = "10"; // number of files to process QString fileName = "unkown"; // current file's name QString status = QString(" 阅读详情

在使用QString的arg方法时,是一件很方便的事情,例如:

QString("%1,2%").arg("10").arg("20") //10,20

但是如果是下面的场景,对于这样场景我们期望得到的结果是:%2,20。

QString("%1,%2").arg("%2").arg("20") //20,20

 实际中肯定不会这么简单啦,因为arg()方法的参数在运行期间有可能是任何值,所以当含有%1,%2...等内容时产生的结果并不是我们所期望的,但是这类的问题又很难察觉到。

所以针对这种使用场景,封装了一个arg()方法,完美的避开了上面的问题

 

QStringEx.hpp

#ifndef QSTRINGEX_HPP
#define QSTRINGEX_HPP


#include <QString>

class QStringEx : public QString
{
public:
	QStringEx(const QString &strFormate): QString(strFormate){}

	QStringEx(){}

	template<typename ...Args>
	QStringEx& stringArg(Args... args)
	{
		return stringArg(1, args...);
	}

private:
	template<typename T, typename ...Args>
	QStringEx& stringArg(int nNumber, T arg, Args... args)
	{
		stringArg(nNumber + 1, args...);
		return stringReplace(nNumber, arg);
	}

	template<typename T>
	QStringEx& stringArg(int nNumber, T arg)
	{
		return stringReplace(nNumber, arg);
	}

	template<typename T>
	QStringEx& stringReplace(int nNumber, T arg)
	{
		QString strNumber = QString("%%1").arg(nNumber);
		int index = this->indexOf(strNumber);
		if (index != -1)
		{
			this->replace(index, strNumber.length(), QString("%1").arg(arg));
		}
		return *this;
	}


};
#endif //QSTRINGEX_H

 

使用:

QStringEx("%1,%2").stringArg("10", 20) //10,20
QStringEx("%1,%2").stringArg("%2", "20") //%2,20

 

基于vue2的echarts3D地球 采用vue2+js实现了echarts3D地球的放大、缩小和旋转 阅读详情

相关推荐

MacX DVD Ripper Pro for Mac(DVD解码器) 6.2.120190416免激活版

只需要5分钟即可转档一张DVD光碟!并允许我们在编码之前预览、编辑、裁剪、修剪或扩展视频。第一款也是唯一一款能够支持DVD到MP4,H.264,MOV,FLV,MPEG4等所有格式DVD(新DVD,99-标题DVD,损坏和无法播放的DVD)和翻录DVD / ISO映像的工具,AVI,QT,MP3等。借助350多种预设配置文件MacX DVD Ripper Pro for Mac(DVD解码器) 6...

llhf688的博客 882

Qt字符串格式化性能比较

原文链接 Qt字符串格式化性能比较 Qt字符串格式方法有三种, QString::arg(), QString::sprinft()和QStringList::join(). 今天我做了个简单的性能测试, 希望对各位有所帮助. 调用QString::arg()一次: 复制代码 1.QString s(“1234567890”); // 开始计时 for (int i = 0; i < 10000; ++i) { QString str("%1"); str.arg(s); } // 停止计时 调用QS

qq_37377257的博客 1422

【模型构建器教程】教你在ArcGIS中如何按照字段值批量导出shp文件

【模型构建器教程】教你在ArcGIS中如何按照字段值批量导出shp文件

weixin_45469245的博客 6438

QString之arg用法

arg比c语言的printf封装更加高级和易用。主要是3类: 1、arg(str1, str2, str3) 2、arg(str1).arg(str2).arg(str3) 3、arg(int,int,int) 一、arg(str1, str2, str3) 用后面依次替换前面,后面的类型确保都是Qstring即可。 QString strs=QString("%1 %2 %3").arg("a","b","c");//输出a b c QString strs=QString("%1...

yanchenyu365的博客 1万+

全志T113s3主线linux开发(0)--基础准备

嵌入式Linux设备的启动大概是三步:1)启动芯片+内存:常见的是Uboot,不过全志的Uboot主线对SPI NAND 不太友好,用TF卡就方便。对于T113S芯片,推荐使用Awboot,简陋但快速。开发阶段用这个就方便好多,对SPINAND支持也方便。2)启动linux内核:主线内核以下通篇都用6.13以上的内核。对比tina5.0还在用5.4 ,主要是性能、安全上有变化。6.0以上内核在devicetree的编写具体格式上有了变化,网上大量tina5.0和5.4内核的编写方式不适用。

2301_79234138的博客 2240

Fluent验证案例03:管道中湍流流动压降计算——采用kw-sst模型计算压降更为准确。

阅读(4053) 评论(0)本案例利用Fluent计算管道中湍流流动压降。

qq_15963745的博客 866

QString中的arg()用法

QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const 上面为arg()的函数原型。 注意:用于填充字符串中的%1,%2...为给定的参数。其中取代的为%1,%2,...,%99.注意最小为%1最大为%99。 使用arg(str1).a...

Rock N' Roll Forever 4593

AI + 药物临床试验研发赛道

研究日期:2026-07-09 | 研究主题:AI + 药物临床试验研发赛道 | 聚焦岗位:Agent 平台架构师 / AI 工程架构师。

AI天才研究院 138

Qt中QString的arg()函数使用记录

Qt中QString的arg()函数使用记录 QString::arg()//是用字符串变量参数依次替代字符串中最小数值 大致有如下3种用法: (1)arg(str1, str2, str3) 其中一次可替换参数个数最多为9个,举例如下 QString str = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11") .arg("1","2","3","4","5","6","7","8","9") 输出为"1 2 3 4 5 6 7 8 9 %10 %11" 要想

qq_42755842的博客 3660

机器学习(十九):梯度提升回归(GBR)

机器学习中的梯度提升回归算法原理与案例实战。

全栈川川 5147

11、RK3566/3568 Android11切割屏幕 长条屏 显示

在使用 RK3566 平台进行 Android 11 开发时,遇到切割屏(长条屏)显示画面不全。本文将详细介绍如何配置,以及如何修改 HWComposer 来调整显示区域,解决图像缩放问题。我这边屏幕是lvds接口的,分辨率1920 1080实际的屏物理尺寸是1920x463。

qq_39451352的博客 247

QString类arg方法扩展二

之前写了一篇关于扩展arg方法的文章,后来使用期间,发现有2个问题: 1.第一个入参不能是数字 2.入参个数过多时,会出现溢出问题 多以针对这两个问题,重新优化了一下,这次算是完美了,哈哈哈 #ifndef QSTRINGEX_HPP #define QSTRINGEX_HPP #include <QString> class QStringEx : public...

HFUTWXY的博客 309

【Unity工具篇】| Unity项目中如何使用LuBan插件,详细集成步骤

前面写了一篇文章用于介绍LuBan的下载及快速使用方法:【Unity实战篇】| 实用插件LuBan,快速上手使用 本篇文章就来介绍一下将LuBan集成到自己的Unity项目的方法。 看完本篇文章之后,就可以直接把LuBan插件放到自己项目中进行配表和使用。

努力前行,总会成为自己心中的那道光 2万+

QString.arg()用法

在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。 在QT5的帮助文档中,可以看出以下几点: 使用arg(str1, str2, str3)这种方法进行替换。 使用arg(str1).arg(str2).arg(str3)这种方法进行替换。 ​使用arg(int, int, int)这种方式进行替换。 解释以下两种方...

qq_42908110的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Qt QString的arg()方法的使用

Qt QString的arg()方法的使用,英文太差了,帮助文档没看懂,百度一下,有需要的朋友可以参考下。(下面两种方法是比较常用的)1、QString的arg()方法用于填充字符串中的%1,%2...为给定的参数,如QString m = tr("%1:%2:%3").arg("12").arg("60").arg("60"); // m = "12:60:60:2、它还有另外一种重载方法...

zxl_1996的博客 5057

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

QT QString的arg方法

在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。 在QT5的帮助文档中,可以看出以下几点: 使用arg(str1, str2, str3)这种方法进行替换。 使用arg(str1).arg(str2).arg(str3)这种方法进行替换。 ​使用arg(int,int,int)这种方式进行替换。 解释以下两种方法:...

qq_27278957的博客 1078

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

QT学习之QString的arg方法

在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。 在QT5的帮助文档中,可以看出以下几点: 使用arg(str1, str2, str3)这种方法进行替换。 使用arg(str1).arg(str2).arg(str3)这种方法进行替换。 ​使用arg(int,int,int)这种方式进行替换。 解释以下...

weixin_30847271的博客 1878

Qt QString的arg()方法的使用(一)

Qt QString的arg()方法的使用,英文太差了,帮助文档没看懂,百度一下,有需要的朋友可以参考下。 (下面两种方法是比较常用的) 1、QString的arg()方法用于填充字符串中的%1,%2...为给定的参数,如 QString m = tr("%1:%2:%3").arg("12").arg("60").arg("60"); // m = "12:60:60:

Fighting_YoungMan的博客 1万+

QString之arg

QString的arg接口主要用于字符串组合的功能。

Qt君 1237

深入分析 QString::arg 的用法及其应用

在 Qt 框架中,`QString` 类是处理字符串的基本工具,提供了非常丰富的功能。`QString::arg()` 方法是 `QString` 类中一个非常实用的功能,它允许开发者在字符串中插入变量值,类似于格式化字符串。本文将深入分析 `QString::arg()` 方法的用法及其在 Qt 应用程序开发中的应用。

dont worry about it的博客 1万+

C++实现Qt中QString().arg().arg()...的用法

以前,用Qt,现在用VS2015,在输出提示信息的时候,不是cout,就是printf,那个都没有用qt的时候QString().arg()…来的方便,又懒得百度c++有没有相似的用法,就自己写一个凑合着用吧! #pragma once #ifndef ERRORMSG_H #define ERRORMSG_H #include <iostream> #include <string> #include <map> #include <list> #incl

qq_29375369的博客 4139

QT之QString的arg方法

转载。标记一下,总结的很好 转自http://www.cnblogs.com/lomper/p/4135387.html 在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。 在QT5的帮助文档中,可以看出以下几点: 使用arg(str1, str2, str3)这种方法进行替换。 使用arg(str1).arg(s...

dingbianping4275的博客 296

Qt QString的arg()方法的使用

QString的arg()方法用于填充字符串中的%1,%2...为给定的参数,如 QString m = tr("%1:%2:%3").arg("12").arg("60").arg("60"); // m = "12:60:60: 它还有另外一种重载方法: QString QString::​arg(int a, int fieldWidth = 0, int base = 10,

修锅换壶底 3万+

QT学习笔记(六):QString::arg()函数用法小结

QT学习笔记(五):Qt5的QString的arg用法 在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。 在QT5的帮助文档中,可以看出以下几点: 使用arg(str1, str2, str3)这种方法进行替换。 使用arg(str1).arg(str2).arg(str3)这种方法进行替换。 ​使用arg(int, int, int)这种方式进行替...

Leon_Chen的博客 1万+
上一篇: OpenSSl编译总结
下一篇: union的常见使用场景
HFUTWXY
博客等级 码龄12年 6粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值