【发布时间】: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++ 中,反斜杠后跟 1-3 位数字是八进制字符代码。 Rules for C++ string literals escape character
-
\303\267 = 195 183 dec。其中,使用 UTF-8 编码是除法符号。见:utf8-chartable.de/unicode-utf8-table.pl?utf8=dec -
tr()是一个标记国际翻译字符串的函数。在运行时,输入字符串将根据 Qt Linguist 工具中配置的翻译翻译成适当的语言 -
这就是我要找的答案!谢谢!