QML изменить cursorShape внутри ChartView без использования MouseArea

У меня есть компонент ChartView с различными конфигурациями диаграммы (в зависимости от выбора пользователя, диаграмма будет отображать круговую / линейную / линейчатую / точечную диаграмму). Я использую функции графиков, чтобы сделать их кликабельными (на всех графиках hovered()/clicked() возвращаются срез / точки / бары, зависшие / clicked и их статус. Поэтому я не хочу использовать MouseArea (поэтому это не влияет на его поведение.

Имея это в виду, я хочу изменить cursorShape, когда мышь находится над элементом (срез / полоса / точка), к которому прикреплен некоторый эффект.

Структура кода следующая:

ChartView { /* Chart */
        id:chartView
        visible: (isPieChart || isBarChart || isLineChart)
        anchors.fill: parent

        //Pie Chart
        PieSeries { visible: isPieChart; id: pieserieschart; size: 1; holeSize: 0.7;
            onHovered: sliceHovered(slice, state)
        }
        // Bar Chart
        StackedBarSeries { visible: isBarChart; id: barserieschart; 
            onHovered: barHovered(barset, status);
        }
        //Scatter Chart
        ScatterSeries{ visible: isLineChart; id: scatterserieschart;                  
            onHovered: pointHovered(point, state);
        }
    }

Я хотел бы изменить cursorShape всякий раз, когда срабатывает onHovered. Я не хочу заменять его на MouseArea, потому что каждая зависшая возвращает разные переменные и значения в зависимости от выбранной диаграммы, и мне нужны эти параметры. Установка MouseArea, которая заполняет весь график, также не будет работать, потому что я хочу, чтобы курсор изменялся только для элементов, которые можно нажимать (например, не на оси, легенде или заголовке). Есть идеи? Заранее спасибо.

0 ответов

Другие вопросы по тегам