I have inherit a QwtScaleEngine in this way:

Qt Code:
  1. class boundScaleEngine : public QwtLinearScaleEngine
  2. {
  3. public:
  4.  
  5. virtual QwtScaleDiv divideScale( double x1, double x2,
  6. int numMajorSteps, int numMinorSteps,
  7. double stepSize = 0.0 ) const;
  8. };
  9.  
  10. QwtScaleDiv boundScaleEngine::divideScale( double x1, double x2,
  11. int numMajorSteps, int numMinorSteps,
  12. double stepSize) const
  13. {
  14. QwtScaleDiv sd = QwtLinearScaleEngine::divideScale(x1, x2, numMajorSteps, numMinorSteps, stepSize);
  15.  
  16. QList<double> ticks[QwtScaleDiv::NTickTypes];
  17.  
  18. ticks[QwtScaleDiv::MajorTick] = sd.ticks(QwtScaleDiv::MajorTick);
  19. ticks[QwtScaleDiv::MediumTick] = sd.ticks(QwtScaleDiv::MediumTick);
  20. ticks[QwtScaleDiv::MinorTick] = sd.ticks(QwtScaleDiv::MinorTick);
  21.  
  22. QwtInterval interval = sd.interval();
  23. double upper,lower;
  24.  
  25. if(x1>x2)
  26. {
  27. upper = x1;
  28. lower = x2;
  29. }
  30. else
  31. {
  32. upper = x2;
  33. lower = x1;
  34. }
  35.  
  36. if(ticks[QwtScaleDiv::MajorTick].indexOf(lower) == -1)
  37. ticks[QwtScaleDiv::MajorTick].prepend(lower); // add the lower bound tick if it is not present
  38. if(ticks[QwtScaleDiv::MajorTick].indexOf(upper) == -1)
  39. ticks[QwtScaleDiv::MajorTick].append(upper); // add the upper bound tick if it is not present
  40.  
  41. return QwtScaleDiv(interval, ticks);
  42. }
To copy to clipboard, switch view to plain text mode 

I used the boundScaleEngine class in both QwtSlider and QwtPlot, and it seems to work properly, but I don't know if there is some pitfalls.
what is your opinion?

bets regards
max