! \return Size hint for the plot widget \sa minimumSizeHint() */
| 478 | \sa minimumSizeHint() |
| 479 | */ |
| 480 | QSize QwtPlot::sizeHint() const |
| 481 | { |
| 482 | int dw = 0; |
| 483 | int dh = 0; |
| 484 | |
| 485 | for ( int axisPos = 0; axisPos < QwtAxis::AxisPositions; axisPos++ ) |
| 486 | { |
| 487 | { |
| 488 | const QwtAxisId axisId( axisPos ); |
| 489 | |
| 490 | if ( isAxisVisible( axisId ) ) |
| 491 | { |
| 492 | const int niceDist = 40; |
| 493 | const QwtScaleWidget* scaleWidget = axisWidget( axisId ); |
| 494 | const QwtScaleDiv& scaleDiv = scaleWidget->scaleDraw()->scaleDiv(); |
| 495 | const int majCnt = scaleDiv.ticks( QwtScaleDiv::MajorTick ).count(); |
| 496 | |
| 497 | const QSize hint = scaleWidget->minimumSizeHint(); |
| 498 | |
| 499 | if ( QwtAxis::isYAxis( axisPos ) ) |
| 500 | { |
| 501 | const int hDiff = ( majCnt - 1 ) * niceDist - hint.height(); |
| 502 | dh = qMax( dh, hDiff ); |
| 503 | } |
| 504 | else |
| 505 | { |
| 506 | const int wDiff = ( majCnt - 1 ) * niceDist - hint.width(); |
| 507 | dw = qMax( dw, wDiff ); |
| 508 | } |
| 509 | } |
| 510 | } |
| 511 | } |
| 512 | return minimumSizeHint() + QSize( dw, dh ); |
| 513 | } |
| 514 | |
| 515 | /*! |
| 516 | \brief Return a minimum size hint |