目前,我正在编写一个应用程序,将液位测量数据显示到一些图表中。我总是在 x 轴上有日期/时间,在 y 轴上有数据。为此,我使用 Qwt 并修改了 QwtPlotPicker 类以显示正确的时间标签。我通过推导和重新定义一个成员函数来做到这一点:
class myQwtPlotPicker : public QwtPlotPicker {
Q_OBJECT
public:
explicit myQwtPlotPicker( QWidget* canvas, bool DateScale = false );
explicit myQwtPlotPicker( int xAxis, int yAxis, QWidget* canvas, bool DateScale = false );
explicit myQwtPlotPicker( int xAxis, int yAxis, RubberBand rubberBand, DisplayMode trackerMode, QWidget* canvas, bool DateScale = false );
virtual ~myQwtPlotPicker() {};
protected:
virtual QwtText trackerTextF( const QPointF &position ) const {
... redefinition of the label text ...
}
};
如您所见,我还添加了一个新参数 DateScale,它可以打开或关闭日期标签。这很完美,但是有一个类 QwtPlotZommer 派生自 QwtPlotPicker:
class QWT_EXPORT QwtPlotZoomer: public QwtPlotPicker { };
现在的问题是,如何让类 QwtPlotZommer 派生自 myQwtPlotPicker 而不是派生自 QwtPlotPicker? 或者我当然可以编辑 Qwt 源代码,但必须有适当的方法来进行此操作。
我希望有一个合适的方法来做到这一点。如果有人可以帮助我,我会很高兴。
最佳答案
尝试多重继承:
class myQwtPlotZoomer : public QwtPlotZoomer, public QwtPlotPicker { };
关于c++ - 更改现有派生类的基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18610218/