【QT】代码或者程序出现乱码的问题
1.str = QString("%1 %2 (%3s-%4s)").arg("permissive").arg("society").arg(1950).arg(1970);
这 段代码中,%1, %2, %3, %4作为占位符,将被后面的arg()函数中的内容依次替换,
比如%1将被替换成permissive,%2将被替换成society,%3将被替换成 1950,%4将被替
换曾1970,最后,这句代码输出为:permissive society (1950s-1970s). arg()函数比起
sprintf()来是类型安全的,同时它也接受多种的数据类型作为参数,因此建议使用arg()
函数而不是传统的 sprintf()。
2.增加时可以“+”可以append.
3.使用static的函数number()可以把数字转换成字符串。例如:QString str = QString::number(54.3);
你也可以使用非static函数setNum()来实现 相同的目的:QString str;
str.setNum(54.3);
4.一系列的to函数则可以将字符串转换成其他基本类型,例如toInt(), toDouble(),
toLong()等。这些函数都接受一个bool指针作为参数,函数结束之后将根据是否转换成功设
置为true或者false:
5.函数startsWith()和endsWith()可以检测字符 串是不是以某个特定的串开始或结尾。
6.QString还提供了replace()函数供实现字符串的 替换功能;trimmed()函数去除字符串两侧的空白字符(注意,空白字符包括空格、Tab 以及换行符,而不仅仅是空格);toLower()和 toUpper()函数会将字符串转换成小写大写字符串;remove()和 insert()函数
提供了删除和插入字符串的能力;simplified()函数可以将串中的所有连续的空白字符替换成一个,并且把两端的空白字符去 除,例如" \t ”会返回一个空格" "。
7.将const char *类型的C 风格字符串转换成QString 也是很常见的需求,简单来说,QString 的+=即可完成这个功能:
str += " (1870)";
QString 转 char*:str.toAscii().data();或qPrintable(str);
使用 tr()
本机的编码 与 别人机器编码 格式不同出现 中文乱码
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());