@Griglapidus
C++/Qt

Из за чего может быть ошибка вывода кириллицы qml Text?

Возникла необычная проблема, решения которой за сутки я не нашел. Проблема возникает только на 1 ПК с Windows 10. При попытке вывода русского текста в qml Text вместо русских букв выводятся символы, как мне показалось, греческого алфавита. Первый вывод что сбита кодировка, но механизма её настройки для qml я не нашел. При замене Text на Label текст начал выводится правильно, но например в TextEdit он также выводится не той кодировки. При копировании и вставки например в notepad++ текст отображается правильно. Выгляди это так:
5e9626766efea808006176.png
На всякий случай код, хотя ничего особенного в нем и нет.
Connections {
    target: QmlModel
    onDiagnosticCompleted: {
      if(result.length) {
        diagnosticResult.text = "Text:" + result;
        diagnosticResultLabel.text = "Label:" + result;
      }
    }
  }


RowLayout {
        anchors.fill: parent
        id: layout
        Rectangle {
          border.color: "#101010"
          border.width: 1
          Layout.fillWidth: true
          Layout.minimumWidth: 50
          Layout.preferredWidth: 100
          Layout.maximumWidth: 300
          Layout.minimumHeight: 150

          Text {
            id:diagnosticResult
            padding: 5
            anchors.fill: parent
            z:0
          }

        }
        Rectangle {
          border.color: "#101010"
          border.width: 1
          Layout.fillWidth: true
          Layout.minimumWidth: 50
          Layout.preferredWidth: 100
          Layout.maximumWidth: 300
          Layout.minimumHeight: 150

          Label {
            id:diagnosticResultLabel
            anchors.fill: parent
            padding: 5
            z:0
          }

        }
      }
  • Вопрос задан
  • 335 просмотров
Решения вопроса 1
@Griglapidus Автор вопроса
C++/Qt
Промежуточный результат. Если у Text задать свойство renderType: Text.NativeRendering то текст становится нормальным. Осталось выяснить почему так происходит.

Дополнено:
что бы применить нативный рендер ко всему проекту можно вставить qputenv("QML_DISABLE_DISTANCEFIELD", "1"); в начале main либо через функцию
void QQuickWindow::setTextRenderType(QQuickWindow::TextRenderType renderType)
с параметром QQuickWindow::NativeTextRendering
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Попробуйте обновить драйвер видеокарты
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы