【问题标题】:What does tr("\302\261") mean in Qt?Qt 中的 tr("\302\261") 是什么意思?
【发布时间】:2018-03-04 06:47:16
【问题描述】:

我正在关注http://doc.qt.io/qt-5/qtwidgets-widgets-calculator-example.html 中的 Qt 计算器示例。 我遇到了下面的代码。

for (int i = 0; i < NumDigitButtons; ++i) {
    digitButtons[i] = createButton(QString::number(i), SLOT(digitClicked()));
}

Button *pointButton = createButton(tr("."), SLOT(pointClicked()));
Button *changeSignButton = createButton(tr("\302\261"), SLOT(changeSignClicked()));

Button *backspaceButton = createButton(tr("Backspace"), SLOT(backspaceClicked()));
Button *clearButton = createButton(tr("Clear"), SLOT(clear()));
Button *clearAllButton = createButton(tr("Clear All"), SLOT(clearAll()));

Button *clearMemoryButton = createButton(tr("MC"), SLOT(clearMemory()));
Button *readMemoryButton = createButton(tr("MR"), SLOT(readMemory()));
Button *setMemoryButton = createButton(tr("MS"), SLOT(setMemory()));
Button *addToMemoryButton = createButton(tr("M+"), SLOT(addToMemory()));

Button *divisionButton = createButton(tr("\303\267"), SLOT(multiplicativeOperatorClicked()));
Button *timesButton = createButton(tr("\303\227"), SLOT(multiplicativeOperatorClicked()));
Button *minusButton = createButton(tr("-"), SLOT(additiveOperatorClicked()));
Button *plusButton = createButton(tr("+"), SLOT(additiveOperatorClicked()));

Button *squareRootButton = createButton(tr("Sqrt"), SLOT(unaryOperatorClicked()));
Button *powerButton = createButton(tr("x\302\262"), SLOT(unaryOperatorClicked()));
Button *reciprocalButton = createButton(tr("1/x"), SLOT(unaryOperatorClicked()));
Button *equalButton = createButton(tr("="), SLOT(equalClicked()));

但是,我无法理解下面几行中tr("\302\261")tr("\303\267")tr("x\302\262")的意思。

Button *changeSignButton = createButton(tr("\302\261"), SLOT(changeSignClicked()));
Button *divisionButton = createButton(tr("\303\267"), SLOT(multiplicativeOperatorClicked()));
Button *powerButton = createButton(tr("x\302\262"), SLOT(unaryOperatorClicked()));

当我删除\303\267 时,我发现 ÷ 符号消失了。所以我猜它与除法按钮有某种关系。

我不知道 \303\267 如何与除法相关联。我搜索了 Qt 文档页面,但一无所获。

我的问题是:

在此示例中,tr("\302\261")tr("\303\267")tr("x\302\262") 是什么意思?

【问题讨论】:

标签: c++ qt


【解决方案1】:

tr() 函数用于将给定字符串(可选)翻译成另一种语言。来自this answer available on Qt forum

如果您希望您的应用程序支持多种语言,请将代码中每个用户可见的字符串包装在 tr() 函数中。然后 Qt 将在不同的语言环境中使用适当的翻译字符串。当然,Qt 实际上不会为您翻译,您(或您的翻译人员)必须使用 QtLinguist 来完成。

传递给tr() 函数的字符串是UTF-8 字符的八进制代码。如您所见,\303\267÷\302\261±x\302\262 表示 x 的 2 次方(x 后跟上标两个字符)。

【讨论】:

  • 在 QOBJECT 类之外使用 'QObject::tr()'。
猜你喜欢
  • 1970-01-01
  • 2018-01-12
  • 2021-05-09
  • 1970-01-01
  • 2011-08-12
  • 2017-06-11
  • 2018-03-05
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多