Qt中QString模板占位符与相邻数字冲突的解决方法问询
解决QString arg占位符与后续数字冲突的问题
问题根源:Qt的QString::arg会将%26这类写法解析为第2个参数+宽度为6的格式设置,而非%2占位符加普通字符6,导致解析异常或结果不符合预期。
不拆分字符串的前提下,有两种规范的解决方式:
字符串参数场景:给占位符添加字符串格式说明符
s,明确标记这是字符串参数,让Qt停止将后续数字解析为格式设置:QString("123%1%2s6789").arg("4").arg("5");执行后会正确替换为
123456789。数字参数场景:如果传入的是整数等数字类型,可使用对应类型的格式符(比如整数用
d),同样能分隔占位符与后续普通数字:QString("123%1%2d6789").arg(4).arg(5);
内容的提问来源于stack exchange,提问作者TSG
相关产品推荐
相关产品推荐

