I am not sure I know what you mean by "reset". When the axis scale is changed (by a zoom/pan/magnify or by an appplication call to QwtPlot::setAxisScale()), the scale engine's divideScale() should automatically be called by the framework when the plot is updated.
Perhaps you are having a problem because the QwtAbstractScaleDraw class caches the labels. In your QtScaleDraw class, after you change the label values call the invalidateCache() method (a protected method in QwtAbstractScaleDraw). This will force a recalculation of the labels. See my example code posted earlier.
You don't show it in your code, but if your scale draw class has a method for updating your label map (other than in the constructor), you should call invalidateCache() before exiting that method. Probably wouldn't hurt to do it in the constructor as well.
Bookmarks