diff --git a/src/axis/datetimeaxis/chartdatetimeaxisx.cpp b/src/axis/datetimeaxis/chartdatetimeaxisx.cpp index a058ec9..dbb7180 100644 --- a/src/axis/datetimeaxis/chartdatetimeaxisx.cpp +++ b/src/axis/datetimeaxis/chartdatetimeaxisx.cpp @@ -97,7 +97,6 @@ QSizeF ChartDateTimeAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint return sh; } - switch (which) { case Qt::MinimumSize:{ int count = qMax(ticksList.last().count(),ticksList.first().count()); diff --git a/src/axis/datetimeaxis/chartdatetimeaxisy.cpp b/src/axis/datetimeaxis/chartdatetimeaxisy.cpp index cdcee41..2cd10c8 100644 --- a/src/axis/datetimeaxis/chartdatetimeaxisy.cpp +++ b/src/axis/datetimeaxis/chartdatetimeaxisy.cpp @@ -94,10 +94,18 @@ QSizeF ChartDateTimeAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint qreal width = 0; qreal height = 0; + if(ticksList.empty()){ return sh; } + int labelWidth = 0; + + foreach(const QString& s, ticksList) + { + labelWidth=qMax(fn.width(s),labelWidth); + } + switch (which) { case Qt::MinimumSize: { width = fn.boundingRect("...").width() + labelPadding(); @@ -108,8 +116,7 @@ QSizeF ChartDateTimeAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint break; } case Qt::PreferredSize: { - int count = qMax(ticksList.first().count() , ticksList.last().count()); - width = count*fn.averageCharWidth() + labelPadding() + 2; //two pixels of tolerance + width = labelWidth + labelPadding() + 2; //two pixels of tolerance width += base.width(); height = fn.height() * ticksList.count(); height = qMax(height,base.height()); diff --git a/src/axis/valueaxis/chartvalueaxisy.cpp b/src/axis/valueaxis/chartvalueaxisy.cpp index 66a3bc8..13d1094 100644 --- a/src/axis/valueaxis/chartvalueaxisy.cpp +++ b/src/axis/valueaxis/chartvalueaxisy.cpp @@ -95,10 +95,11 @@ QSizeF ChartValueAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint) c qreal width = 0; qreal height = 0; - int count = 1; + int labelWidth = 0; - if(!ticksList.empty()){ - count = qMax(ticksList.last().count(),ticksList.first().count()); + foreach(const QString& s, ticksList) + { + labelWidth=qMax(fn.width(s),labelWidth); } switch (which) { @@ -112,7 +113,7 @@ QSizeF ChartValueAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint) c } case Qt::PreferredSize: { - width = count*fn.averageCharWidth() + labelPadding() + 2; //two pixels of tolerance + width = labelWidth + labelPadding() + 2; //two pixels of tolerance width += base.width(); height = fn.height() * ticksList.count(); height = qMax(height,base.height());