- 问题介绍(结论在最后):
qt使用如下组件:lineEdit 和 textedit
在里面输入内容为:c:\User\jklw4\Desktop
使用qDebug()<组件名;
打印得到:c:\\User\\jklw4\\Desktop
疑似发生了转义。 - 目标字符串内容:不需要双斜杠,单斜杠就行
- 达成目标的途径:写函数删除掉多余的一个斜杆
- 函数如下:
QString dir_t;
for(int i=0;i<dir.length();i++){
qDebug()<<i<<" "<<dir[i];
if(dir[i]=='\\'&&dir[i-1]=='\\'){
}else{
dir_t+=dir[i];
}
}
发现运行之后,dir_t打印出来内容后和dir内容是一样的,后面经过调试发现,if语句在整个过程中都没有执行
然后我使用函数:
for(int i=0;i<dir.length();i++){
qDebug()<<i<<" "<<dir[i];
}
发现dir的内容如下:
1 c
2 :
3 \
4 U
5 s
- 结论:实际上,得到的lineedit和textedit里面的值就是c:\User\jklw4\Desktop,仅仅只是在打印出来的时候显示成了双斜杠,实际字符串里还是单斜杠