代码之家  ›  专栏  ›  技术社区  ›  sashoalm Yaser Kalali

防止忘记在tr()中包含字符串文本

  •  0
  • sashoalm Yaser Kalali  · 技术社区  · 10 年前

    Qt使用 tr() 函数用于国际化,但很容易忘记用它括起字符串,例如编写 label->setText("Name:"); 而不是 label->setText(tr("Name:")); .

    我记得在某个地方读到过,除非以其他方式显式地将字符串括起来(如果我没记错的话,在QLatin1String中),否则可以使QString显示错误。我该怎么做?

    1 回复  |  直到 10 年前
        1
  •  4
  •   ratchet freak    10 年前

    您可以添加 QT_NO_CAST_FROM_ASCII DEFINES 在*.pro文件中。这将防止从 char* 。类似地 QT_NO_CAST_TO_ASCII 防止QString隐式转换为 字符* .

    看见 http://qt-project.org/doc/qt-5/qstring.html#converting-between-8-bit-strings-and-unicode-strings 有关详细信息