1. 首页
  2. C++
  3. 【QT】代码或者程序出现乱码的问题

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

  1.str = QString("%1 %2 (%3s-%4s)").arg("permissive").arg("society")....

  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());
哎哎
相关推荐