爱站网络科技有限公司wordpress 搬家 域名
news/
2025/10/7 21:30:50/
文章来源:
爱站网络科技有限公司,wordpress 搬家 域名,wordpress调用随机文章,短视频培训机构排名需要重载QwtScaleDraw类的virtual QwtText label(double)const;方法 该方法在需要绘制scale label时会调用。 主要思路是标尺上的点对应QDateTime::toTime_t()的值。然后重载label方法#xff0c;在QwtText label(double v) const 方法中将参数v转化为QDateTime对象#xff0…需要重载QwtScaleDraw类的virtual QwtText label(double)const;方法 该方法在需要绘制scale label时会调用。 主要思路是标尺上的点对应QDateTime::toTime_t()的值。然后重载label方法在QwtText label(double v) const 方法中将参数v转化为QDateTime对象再转为QString。 timescaledraw.h #ifndef TIMESCALEDRAW_H
#define TIMESCALEDRAW_H#include qwt_scale_draw.h
#include QDateTimeclass TimeScaleDraw : public QwtScaleDraw
{public:TimeScaleDraw();virtual QwtText label(double) const;
};#endif // TIMESCALEDRAW_H timescaledraw.cpp #include timescaledraw.hTimeScaleDraw::TimeScaleDraw()
{
}QwtText TimeScaleDraw::label(double v) const
{QDateTime datetime;datetime.setTime_t((uint)v); return QwtText(datetime.date().toString(Qt::ISODate);
} 调用方法 qwtplot-setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw()); ------------------------------------------------------- 实现之后发现一个问题就是当qwt标尺的label在左右两端显示时会把标尺撑得变形。可以利用重载的label方法判断在左右两端附近时返回一个空的QwtText即可。 具体代码如下 timescaledraw.h #ifndef TIMESCALEDRAW_H
#define TIMESCALEDRAW_H#include qwt_scale_draw.h
#include QDateTimeclass TimeScaleDraw : public QwtScaleDraw
{ double minLabelPos, maxLabelPos;
public:TimeScaleDraw(const double minLabelPos, const double maxLabelPos);virtual QwtText label(double) const;void myinit(const double minLabelPos, const double maxLabelPos);
};#endif // TIMESCALEDRAW_H timescaledraw.cpp #include timescaledraw.hTimeScaleDraw::TimeScaleDraw(const double minLabelPos, const double maxLabelPos)
{ myinit(minLabelPos, maxLabelPos);
}QwtText TimeScaleDraw::label(double v) const
{QDateTime datetime;if(v minLabelPos || v maxLabelPos)return QwtText();datetime.setTime_t((uint)v);return QwtText(datetime.date().toString(Qt::ISODate);
}void TimeScaleDraw::myinit(const double minLabelPos, const double maxLabelPos)
{ this-minLabelPos minLabelPos;this-maxLabelPos maxLabelPos;
} 调用方法 qwtplot-setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw(xx, xxxx));转载于:https://www.cnblogs.com/oceanking/archive/2012/09/13/2683315.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930860.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!