В Qt Quick я пытаюсь нарисовать текст цветным шрифтом, используя этот код:

Text
{
    FontLoader
    {
        id: ftCustomFont;
        source: "Fonts/Colortube-lWAd.otf"
    }

    textFormat: Text.RichText

    text:
    {
        if (ftCustomFont.status == FontLoader.Ready)
            qsTr("<font face=\"" + ftCustomFont.name + "\">test test test</font>");
        else
        if (ftCustomFont.status == FontLoader.Loading)
            "Loading..."
        else
        if (ftCustomFont.status == FontLoader.Error)
            "Error loading font"
    }
}

Шрифт, который я использую выше, был загружен здесь: https://www.fontspace.com/neogrey -creative / colortube

Используя этот шрифт, я ожидал, что был нарисован цветной текст, однако я получаю такой результат:

enter image description here

Как видите, текст нарисован правильным шрифтом, но черно-белым. Я также попробовал несколько образцов цветных шрифтов, загруженных с нескольких сайтов, но, к сожалению, ни один из них не смог нарисовать цветной текст.

Есть ли способ уведомить Qt об использовании цветных глифов вместо черно-белых при рисовании текста? Как мне настроить мой код qml выше для достижения такого эффекта? Или Qt вообще не поддерживает цветные шрифты?

0
Jean-Milost Reymond 31 Дек 2019 в 02:13

1 ответ

Похоже, что это не поддерживается в Qt 5.14. Глипы загружены, но они заполнены цветами. Я пытался установить прозрачный цвет, но это тоже не работает. Итак, вы можете отправить отчет об ошибке.

1
Soheil Armin 31 Дек 2019 в 13:14
Итак, следуя вашему предложению, я открыл отчет об ошибке в трекере ошибок Qt: bugreports.qt.io/ browse / QTBUG-81291
 – 
Jean-Milost Reymond
10 Янв 2020 в 15:03