Qwt 关闭轴标签的科学记数法
Posted
技术标签:
【中文标题】Qwt 关闭轴标签的科学记数法【英文标题】:Qwt turn off scientific notation for axis labels 【发布时间】:2015-09-24 12:13:33 【问题描述】:默认情况下,Qwt
在轴上以科学计数法显示大数字:
对于我的应用程序,我真的很想将其关闭或重新格式化标签。查看class documentation,似乎没有任何QwtScale
类有此选项。这种行为可以通过派生一个新类来实现吗?如果是这样,它应该从哪个类派生,哪些成员需要重载?
【问题讨论】:
看看这个帖子***.com/questions/18587571/…你可以像我一样覆盖缩放绘制类。 针对您的特殊情况的附加注释,在您自己的派生QwtScaleDraw
类中覆盖 QwtScaleDraw::label(double)
就足够了。
@bkausbk 你的回答实际上帮助我解决了几个问题,我希望我可以为每个问题投票一次!
【参考方案1】:
感谢 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);
结果
【讨论】:
好答案从“virtual QwtText label(double value) const override;”中删除分号虽然以上是关于Qwt 关闭轴标签的科学记数法的主要内容,如果未能解决你的问题,请参考以下文章