diff --git a/src/axis/chartcategoriesaxisx.cpp b/src/axis/chartcategoriesaxisx.cpp index c4c0932..afcf0b8 100644 --- a/src/axis/chartcategoriesaxisx.cpp +++ b/src/axis/chartcategoriesaxisx.cpp @@ -81,11 +81,11 @@ void ChartCategoriesAxisX::updateGeometry() QGraphicsLineItem *lineItem = static_cast(axis.at(0)); lineItem->setLine(m_rect.left(), m_rect.bottom(), m_rect.right(), m_rect.bottom()); - for (int i = 1; i < layout.size(); ++i) { + for (int i = 0; i < layout.size(); ++i) { QGraphicsLineItem *lineItem = static_cast(lines.at(i)); lineItem->setLine(layout[i], m_rect.top(), layout[i], m_rect.bottom()); - QGraphicsSimpleTextItem *labelItem = static_cast(labels.at(i-1)); - + QGraphicsSimpleTextItem *labelItem = static_cast(labels.at(i)); + if (i>=1) { labelItem->setText(ticksList.at(i-1)); const QRectF& rect = labelItem->boundingRect(); QPointF center = rect.center(); @@ -93,6 +93,9 @@ void ChartCategoriesAxisX::updateGeometry() labelItem->setPos(layout[i] - (layout[i] - layout[i-1])/2 - center.x(), m_rect.bottom() + label_padding); m_minWidth+=rect.width(); m_minHeight=qMax(rect.height()+label_padding,m_minHeight); + }else{ + labelItem->setVisible(false); + } if ((i+1)%2 && i>1) { QGraphicsRectItem *rectItem = static_cast(shades.at(i/2-1)); diff --git a/src/axis/chartcategoriesaxisy.cpp b/src/axis/chartcategoriesaxisy.cpp index 7af1f16..cbdb448 100644 --- a/src/axis/chartcategoriesaxisy.cpp +++ b/src/axis/chartcategoriesaxisy.cpp @@ -79,18 +79,22 @@ void ChartCategoriesAxisY::updateGeometry() QGraphicsLineItem *lineItem = static_cast(axis.at(0)); lineItem->setLine(m_rect.left(), m_rect.bottom(), m_rect.right(), m_rect.bottom()); - for (int i = 1; i < layout.size(); ++i) { + for (int i = 0; i < layout.size(); ++i) { QGraphicsLineItem *lineItem = static_cast(lines.at(i)); lineItem->setLine(layout[i], m_rect.top(), layout[i], m_rect.bottom()); QGraphicsSimpleTextItem *labelItem = static_cast(labels.at(i)); - - labelItem->setText(ticksList.at(i)); + if(i>=1){ + labelItem->setText(ticksList.at(i-1)); const QRectF& rect = labelItem->boundingRect(); QPointF center = rect.center(); labelItem->setTransformOriginPoint(center.x(), center.y()); labelItem->setPos(layout[i] - (layout[i] - layout[i-1])/2 - center.x(), m_rect.bottom() + label_padding); m_minWidth+=rect.width(); m_minHeight=qMax(rect.height()+label_padding,m_minHeight); + }else{ + labelItem->setVisible(false); + } + if ((i+1)%2 && i>1) { QGraphicsRectItem *rectItem = static_cast(shades.at(i/2-1)); diff --git a/src/axis/qbarcategoriesaxis.cpp b/src/axis/qbarcategoriesaxis.cpp index 698855a..77f6c0d 100644 --- a/src/axis/qbarcategoriesaxis.cpp +++ b/src/axis/qbarcategoriesaxis.cpp @@ -124,6 +124,8 @@ QBarCategoriesAxis::QBarCategoriesAxis(QBarCategoriesAxisPrivate &d,QObject *par */ void QBarCategoriesAxis::append(const QStringList &categories) { + if(categories.isEmpty()) return; + Q_D(QBarCategoriesAxis); if (d->m_categories.isEmpty()) { d->m_categories.append(categories); @@ -173,7 +175,7 @@ void QBarCategoriesAxis::insert(int index, const QString &category) d->m_categories.insert(index,category); setRange(category,category); }else{ - + d->m_categories.insert(index,category); } emit categoriesChanged(); } @@ -295,7 +297,7 @@ void QBarCategoriesAxis::setRange(const QString& minCategory, const QString& max changed = true; } - if ((changed)) { + if (changed) { d->emitRange(); emit categoriesChanged(); }