如何在QT 5中显示特殊字符?

时间:2019-05-28 14:30:41

标签: c++ visual-studio utf-8 qt5

摘录自我的代码:

  char msg[80];
  sprintf(msg, "Chuck Temperature: %.1f °C", temperature);
  ui.TemperatureLabel->setText(QString::fromUtf8(msg));

我得到的是

什么不起作用:

  • 用&deg代替度数符号(°)。同时将textFormat设置为RichText。它显示为“ 卡盘温度:&℃”。

  • 添加QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));完全没有帮助。

如果重要的话,我在Visual C ++下工作。

1 个答案:

答案 0 :(得分:0)

使用QString代替呢?它为您处理特殊字符。

如果我理解您的代码,则想更新QLabel的文本。

您可以执行以下操作:

QString msg("Chuck Temperature: " + QString::number(temperature) + " °C");
ui.TemperatureLabel->setText(msg);

请注意,您可以在QString::number()中指定所需的精度。 Here,您将看到如何做。
如果您要像%.1f一样格式化温度,只需编写以下内容:

QString msg("Chuck Temperature: " + QString::number(temperature, 'g', 2) + " °C");
ui.TemperatureLabel->setText(msg);

我希望它能解决您的问题。