默认情况下,Qwt
以科学计数法在轴上显示大数字:
对于我的应用程序,我真的想关闭它或重新格式化标签。通过class documentation查看,似乎任何QwtScale
类都没有选项。可以通过派生一个新类来实现这种行为吗?如果是这样,应该从哪个类派生出来,哪些成员需要重载?
答案 0 :(得分:0)
感谢bkausbk,我能够提出这个经过修改的QwtScaleDraw
:
class QScaleDraw : public QwtScaleDraw
{
public:
explicit QScaleDraw(bool enableScientificNotation = false)
: m_scientificNotationEnabled(enableScientificNotation)
{
}
virtual QwtText label(double value) const override;
{
if (m_scientificNotationEnabled)
{
return QwtScaleDraw::label(value);
}
else
{
return QwtText(QString::number(value, 'f', 0));
}
}
private:
bool m_scientificNotationEnabled;
};
然后使用它,你会做类似的事情:
QwtPlot myplot;
myplot->setAxisScaleDraw(xBottom, new QScaleDraw);