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, вам необходимо зарегистрироваться ChartStylermain.cpp например)

 qmlRegisterType<ChartStyler>("MyCoolProgram.ChartStyler", 1, 0, "ChartStyler");
Другие вопросы по тегам