【QT】代码或者程序出现乱码的问题

2015-03-26发布0条评论

  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,最后,这句代码输出为:permissivesociety(1950s-1970s).arg()函数比起

  sprintf()来是类型安全的,同时它也接受多种的数据类型作为参数,因此建议使用arg()

  函数而不是传统的sprintf()。

  2.增加时可以“+”可以append.

  3.使用static的函数number()可以把数字转换成字符串。例如:QStringstr=QString::number(54.3);

  你也可以使用非static函数setNum()来实现相同的目的:QStringstr;

  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.将constchar*类型的C风格字符串转换成QString也是很常见的需求,简单来说,QString的+=即可完成这个功能:

  str+="(1870)";

  QString转char*:str.toAscii().data();或qPrintable(str);

  使用tr()

  本机的编码与别人机器编码格式不同出现中文乱码

 QTextCodec::setCodecForTr(QTextCodec::codecForLocale());