int ScalePicker::maxLabelWidth(const QwtScale *scale) const { QFontMetrics fm(scale->font()); const QwtScaleDraw * scaleDraw=scale->scaleDraw (); const QwtScaleDiv scaleDiv=scaleDraw->scaleDiv(); const double step_eps = 1.0e-6; int maxWidth = 0; for (uint i = 0; i < scaleDiv.majCnt(); i++) { double val = scaleDiv.majMark(i); // correct rounding errors if val = 0 if ((!scaleDiv.logScale()) && (qwtAbs(val) < step_eps * qwtAbs(scaleDiv.majStep()))) { val = 0.0; } const int w = fm.boundingRect(scaleDraw->label(val)).width(); if ( w > maxWidth ) maxWidth = w; } return maxWidth; }
int ScalePicker::maxLabelHeight(const QwtScale *scale) const { QFontMetrics fm(scale->font()); const QwtScaleDraw * scaleDraw=scale->scaleDraw (); const QwtScaleDiv scaleDiv=scaleDraw->scaleDiv(); int maxHeight = 0; for (uint i = 0; i < scaleDiv.majCnt(); i++) { double val = scaleDiv.majMark(i); const int w = fm.boundingRect(scaleDraw->label(val)).height(); if ( w > maxHeight ) maxHeight = w; } return maxHeight; }