diff --git a/demos/piechartcustomization/mainwidget.cpp b/demos/piechartcustomization/mainwidget.cpp index 7b80dc0..f235670 100644 --- a/demos/piechartcustomization/mainwidget.cpp +++ b/demos/piechartcustomization/mainwidget.cpp @@ -111,7 +111,7 @@ MainWidget::MainWidget(QWidget* parent) m_endAngle->setValue(m_series->pieEndAngle()); m_endAngle->setSingleStep(1); - QPushButton *addSlice = new QPushButton("Add slice"); + QPushButton *appendSlice = new QPushButton("Append slice"); QPushButton *insertSlice = new QPushButton("Insert slice"); QFormLayout* seriesSettingsLayout = new QFormLayout(); @@ -120,7 +120,7 @@ MainWidget::MainWidget(QWidget* parent) seriesSettingsLayout->addRow("Size factor", m_sizeFactor); seriesSettingsLayout->addRow("Start angle", m_startAngle); seriesSettingsLayout->addRow("End angle", m_endAngle); - seriesSettingsLayout->addRow(addSlice); + seriesSettingsLayout->addRow(appendSlice); seriesSettingsLayout->addRow(insertSlice); QGroupBox* seriesSettings = new QGroupBox("Series"); seriesSettings->setLayout(seriesSettingsLayout); @@ -130,7 +130,7 @@ MainWidget::MainWidget(QWidget* parent) connect(m_sizeFactor, SIGNAL(valueChanged(double)), this, SLOT(updateSerieSettings())); connect(m_startAngle, SIGNAL(valueChanged(double)), this, SLOT(updateSerieSettings())); connect(m_endAngle, SIGNAL(valueChanged(double)), this, SLOT(updateSerieSettings())); - connect(addSlice, SIGNAL(clicked()), this, SLOT(addSlice())); + connect(appendSlice, SIGNAL(clicked()), this, SLOT(appendSlice())); connect(insertSlice, SIGNAL(clicked()), this, SLOT(insertSlice())); // slice settings @@ -295,7 +295,7 @@ void MainWidget::showFontDialog() m_font->setText(dialog.currentFont().toString()); } -void MainWidget::addSlice() +void MainWidget::appendSlice() { *m_series << new CustomSlice(10.0, "Slice " + QString::number(m_series->count()+1)); } @@ -315,6 +315,8 @@ void MainWidget::removeSlice() if (!m_slice) return; + m_sliceName->setText(""); + m_series->remove(m_slice); m_slice = 0; } diff --git a/demos/piechartcustomization/mainwidget.h b/demos/piechartcustomization/mainwidget.h index b01fe95..6ab0e63 100644 --- a/demos/piechartcustomization/mainwidget.h +++ b/demos/piechartcustomization/mainwidget.h @@ -53,7 +53,7 @@ public Q_SLOTS: void updateSliceSettings(); void handleSliceClicked(QPieSlice* slice, Qt::MouseButtons buttons); void showFontDialog(); - void addSlice(); + void appendSlice(); void insertSlice(); void removeSlice(); diff --git a/examples/piechart/main.cpp b/examples/piechart/main.cpp index 8460c13..6206073 100644 --- a/examples/piechart/main.cpp +++ b/examples/piechart/main.cpp @@ -32,15 +32,15 @@ int main(int argc, char *argv[]) //![1] QPieSeries *series = new QPieSeries(); - series->append(1, "Slice 1"); - series->append(2, "Slice 2"); - series->append(3, "Slice 3"); - series->append(4, "Slice 4"); - series->append(5, "Slice 5"); + series->append(1, "Jane"); + series->append(2, "Joe"); + series->append(3, "Andy"); + series->append(4, "Barbara"); + series->append(5, "Axel"); //![1] //![2] - QPieSlice *slice = series->slices().first(); + QPieSlice *slice = series->slices().at(1); slice->setExploded(); slice->setLabelVisible(); slice->setPen(QPen(Qt::darkGreen, 2)); diff --git a/examples/piechartdrilldown/drilldownslice.cpp b/examples/piechartdrilldown/drilldownslice.cpp index 45d8f16..6b8168c 100644 --- a/examples/piechartdrilldown/drilldownslice.cpp +++ b/examples/piechartdrilldown/drilldownslice.cpp @@ -27,9 +27,10 @@ DrilldownSlice::DrilldownSlice(qreal value, QString prefix, QSeries* drilldownSe m_prefix(prefix) { setValue(value); - setLabelVisible(true); updateLabel(); connect(this, SIGNAL(changed()), this, SLOT(updateLabel())); + connect(this, SIGNAL(hoverEnter()), this, SLOT(showHighlight())); + connect(this, SIGNAL(hoverLeave()), this, SLOT(hideHighlight())); } DrilldownSlice::~DrilldownSlice() @@ -45,12 +46,24 @@ QSeries* DrilldownSlice::drilldownSeries() const void DrilldownSlice::updateLabel() { QString label = m_prefix; - label += " "; + label += " $"; label += QString::number(this->value()); - label += "e, "; + label += ", "; label += QString::number(this->percentage()*100, 'f', 1); label += "%"; setLabel(label); } +void DrilldownSlice::showHighlight() +{ + setExploded(); + setLabelVisible(); +} + +void DrilldownSlice::hideHighlight() +{ + setExploded(false); + setLabelVisible(false); +} + #include "moc_drilldownslice.cpp" diff --git a/examples/piechartdrilldown/drilldownslice.h b/examples/piechartdrilldown/drilldownslice.h index e9f36cf..e01e50c 100644 --- a/examples/piechartdrilldown/drilldownslice.h +++ b/examples/piechartdrilldown/drilldownslice.h @@ -39,6 +39,8 @@ public: public Q_SLOTS: void updateLabel(); + void showHighlight(); + void hideHighlight(); private: QSeries* m_drilldownSeries; diff --git a/examples/piechartdrilldown/main.cpp b/examples/piechartdrilldown/main.cpp index fa6fa64..0211dd9 100644 --- a/examples/piechartdrilldown/main.cpp +++ b/examples/piechartdrilldown/main.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include QTCOMMERCIALCHART_USE_NAMESPACE @@ -39,6 +40,8 @@ int main(int argc, char *argv[]) DrilldownChart* chart = new DrilldownChart(); chart->setTheme(QChart::ChartThemeLight); chart->setAnimationOptions(QChart::AllAnimations); + chart->legend()->setVisible(true); + chart->legend()->setAlignmnent(QLegend::AlignmentRight); QPieSeries* yearSeries = new QPieSeries(&window); yearSeries->setName("Sales by year - All"); diff --git a/src/piechart/piechartitem.cpp b/src/piechart/piechartitem.cpp index c8bbfff..5f962a4 100644 --- a/src/piechart/piechartitem.cpp +++ b/src/piechart/piechartitem.cpp @@ -45,7 +45,10 @@ PieChartItem::PieChartItem(QPieSeries *series, ChartPresenter* presenter) // Note: the following does not affect as long as the item does not have anything to paint setZValue(ChartPresenter::PieSeriesZValue); - setFlags(QGraphicsItem::ItemClipsChildrenToShape); + + // If enabled slice boundingrect() is called instead of shape(). + // And this causes severe issues with mouse click & hover decection. + //setFlags(QGraphicsItem::ItemClipsChildrenToShape); } PieChartItem::~PieChartItem()