Есть ли способ установить текстовые метки для каждого элемента круговой диаграммы, созданной с использованием библиотеки KDChart в Qt?
Если говорить более конкретно, я не использую архитектуру Model / View в этом конкретном случае.дело.Я создаю его, хотя KDChart::Widget
и просто заполняю диаграмму, используя Widget::setDataCell()
.
Кажется, есть несколько способов установить текстовые метки для оси, но я не сталкивался с чем-то похожим для круговой диаграммы.Во всяком случае, это не то, что мне нужно.Я хочу установить метки для определенных точек, а не для своей оси.Применительно к круговой диаграмме это будет что-то вроде названных секторов.
Я подумал, что, возможно, с помощью KDChart::Legend
с заполненными значениями я могу добиться требуемого поведения, но это не сработало.
Вот пример кода, может быть, это поможет несколько.Но имейте в виду, что это изменилось (очищено от загроможденных линий), и я не проверял его правильность:
KDChart::Widget* newChart = new KDChart::Widget;
newChart->setType( KDChart::Widget::Pie );
int curColNo = 0; // it's not a size_t 'coz setDataCell requires an int
for( QVector::const_iterator curValueIt = response.begin(); curValueIt != response.end(); ++curValueIt )
{
newChart->setDataCell( 0, curColNo, *curValueIt );
newChart->diagram()->setBrush( curColNo++, QBrush( m_responsesColors[curValueIt] ) );
m_legend->addDiagram( newChart->diagram() );
}
m_mainLayout.addWidget( newChart, m_curLayoutRowNo, m_curLayoutColNo );
Еще одна вещь - я попытался заполнить его несогласованными номерами столбцов (0,2,5, 9 и т. Д.) И круговая диаграмма была нарисована неправильно - некоторые сектора перекрывали другие.В других типах диаграмм (например, гистограмма) все данные были отображены правильно.
Есть ли у вас какие-либо идеи по поводу меток элементов?
PS Я рассчиталчто не так с заполнением столбцов круговой диаграммы, пропуская некоторые из них.Если вы заполняете столбцы непоследовательно (пропуская некоторые из них), то просто установите значения этих пропущенных столбцов равными нулю.Это исправит проблемы с неправильной визуализацией круговой диаграммы.
Вероятно, KDChart сам должен определить пропущенные столбцы и установить для него нулевое значение автоматически, но это не так.Так что сделай это сам.
Надеюсь, это кому-нибудь поможет.