Как отобразить специальные символы в QT 5? - PullRequest
0 голосов
/ 28 мая 2019

Выдержка из моего кода:

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

Что я получаю:

Что не работает:

  • Замена символа градуса (°) на & deg; при установке textFormat в RichText. Отображается как « Температура патрона: & deg; C ».

  • Добавление QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); совсем не помогло.

Я работаю под Visual C ++, если это важно.

1 Ответ

0 голосов
/ 28 мая 2019

А как насчет использования QString вместо? Он обрабатывает для вас специальные символы.

Если я понимаю ваш код, вы хотите обновить текст QLabel.

Вы можете сделать что-то следующим образом:

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

Обратите внимание, что вы можете указать желаемую точность в QString::number(). Здесь вы можете увидеть, как это сделать.
Если вы хотите отформатировать температуру так же, как %.1f, просто напишите следующее:

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

Надеюсь, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...