文本颜色仅在qml中仅更改一个单词

问题描述

我要更改文本的颜色,如下所示:

text: "Hello World"

“ Hello”应更改为“ blue”, “世界”应更改为“红色”。

我也不想使用以下给定格式(因为我正在从cpp中读取颜色):

Text {
    text: "<font color=\"#0000FF\">Hello</font> <font color=\"#FF0000\">World</font>"
}

是否还有其他方法可以仅更改一个单词(以qml为单位)的颜色?

解决方法

另一种方法是使用Flow和多个Text元素。

Flow {
    Text {
        text: "Hello"
        color: "#0000FF"
    }
    Text {
        text: " "
    }
    Text {
        text: "World"
        color: "#FF0000"
    }
}

我也不想使用以下给定格式(因为我正在从cpp中读取颜色):

Text {
   text: "<font color=\"#0000FF\">Hello</font> <font color=\"#FF0000\">World</font>"
}

是什么阻止您执行以下操作?

text: `<font color="${cppObject.helloColor}">Hello</font> <font color="${cppObject.worldColor}">World</font>`

这使用了template literals,但是您也可以使用普通的字符串连接来实现。