QML ValueAxis не может найти способ изменить цвет метки
В документации ValueAxis я не могу найти свойство для изменения цвета заголовка, который по умолчанию черный. Я хочу изменить его на белый.
3 ответа
Вы можете использовать форматирование HTML при установке заголовка оси.
titleText: "<font color='white'>YourTitle</font>"
Оказывается, вы можете просто установить titleBrush своей оси на цвет непосредственно в QML, даже если этого нет в документации. В отличие от других ответов, это позволяет мне делать это динамически, причем цвет не обязательно является жестко закодированной строкой. Вот как я это делаю для своей оси x:
DateTimeAxis
{
id: timeAxis
format: "hh:mm:ss"
color: "white"
labelsColor: color
gridLineColor: color
minorGridLineColor: color
titleBrush: color
}
Создайте функцию в C++, которую вы можете вызывать из QML, пометив ее как Q_INVOKABLE
вот так:
В вашем заголовочном файле:
public:
Q_INVOKABLE QBrush titleBrush() const;
В вашем файле класса:
QBrush ChartStyler::titleBrush() const
{
return QBrush(Qt::white);
}
Затем вы можете вызвать это в своем QML:
import MyCoolProgram.ChartStyler 1.0
ChartStyler {
id: chartStyler
...
ValueAxis {
titleText: "My X Axis"
titleBrush: chartStyler.titleBrush()
}
...
}
Если у вас еще нет класса, к которому вы можете получить доступ из QML, вам необходимо зарегистрироваться ChartStyler
(в main.cpp
например)
qmlRegisterType<ChartStyler>("MyCoolProgram.ChartStyler", 1, 0, "ChartStyler");