Qwt之QwtDateScaleDraw时间标尺
来源:互联网 发布:手机淘宝尺码怎么设置 编辑:程序博客网 时间:2024/05/16 09:33
原文地址:http://blog.csdn.net/desert187/article/details/12849133
Qwt是用于绘制科学图形的Qt库。其中用于绘制坐标和曲线的类是QwtPlot类。QwtPlot提供的坐标默认以数值为单位,例如:(1,2,3,…,61,62…)。但是有些时候需要以时间或日期为单位刻度的标尺。Qwt是提供了这样的功能的。
QwtPlot类会默认创建两个Scale,也就是标尺,另外QwtPlot提供了方法,允许开发人员对将默认的Scale替换成定制的标尺。因此,只需要创建一个QwtDateScaleDraw对象QwtDateScaleDraw是以时间为刻度的标尺类,并用其替换Plot的默认Scale即可。QwtDateScaleDraw类的继承关系如下所示:
替换Plot的默认Scale代码如下:
QwtDateScaleDraw *timeScale = new QwtDateScaleDraw(Qt::LocalTime);QwtPlot *plot = new QwtPlot();plot->setAxisScaleDraw(QwtPlot::xBottom, timeScale);delete plot;
Qwt帮助文档中setAxisScaleDraw()方法的原型和解释如下:
void QwtPlot::setAxisScaleDraw (int axisId, QwtScaleDraw *scaleDraw);
By passing scaleDraw it is possible to extend QwtScaleDrawfunctionality and let it take place in QwtPlot. Please note that scaleDraw has to be created with new and will be deleted by the corresponding QwtScale member ( like a child object ).
翻译过来是说:通过传入scaleDraw参数,可以替代QwtPlot中的QwtScaleDraw,并扩展其功能。请注意,scaleDraw必须使用new关键字创建,作为相关的QwtScale成员,会被像子对象一样删除(笔者注:Qt会自动delete子对象)。
这就是在上述代码中,只需要delete plot,而不用再delete timeScale了。
QwtDateScaleDraw允许开发人员对时间刻度的显示方式进行设置,下面的代码将设置在毫秒级别以“Sec 秒:毫秒”的方式显示,在秒及其以上级别以“时:分:秒\n年-月-日”的方式进行显示,其中“\n”表示换行。
QString *scaleFormat;scaleFormat = new QString("Sec ss:zzz");timeScale->setDateFormat(QwtDate::Millisecond, *scaleFormat);delete scaleFormat;scaleFormat = new QString("hh:mm:ss\nyy-MM-dd");timeScale->setDateFormat(QwtDate::Second, *scaleFormat);delete scaleFormat;
最终显示效果如下:
附另有一个帖子的自定义日期/时间标尺的实现代码:
原帖地址:http://bbs.csdn.net/topics/391053905?page=1
//时间坐标轴class TimeScakeDrawR: public QwtScaleDraw{public:TimeScakeDrawR(const QDateTime &base): baseTime(base){ }virtual QwtText label(double v) const{QDateTime upTime = baseTime.addSecs((int )v);return upTime.toString("yyyy-MM-dd\nhh:mm:ss");}private:QDateTime baseTime;};//调用:m_baseTime = QDateTime::currentDateTime();ui.qwtPlot->setAxisScaleDraw(QwtPlot::xBottom,new TimeScakeDrawR(m_baseTime));
- Qwt之QwtDateScaleDraw时间标尺
- Qwt之QwtDateScaleDraw时间标尺
- Qwt源码解读之标尺相关类——日期时间标尺绘制类QwtDateScaleDraw
- Qwt源码解读之标尺相关类
- Qwt源码解读之标尺相关类
- Qwt源码解读之标尺相关类
- Qwt源码解读之标尺相关类——QwtScaleMap
- Qwt源码解读之标尺相关类——QwtScaleDiv
- Qwt使用之QwtPlot
- Qwt使用之QwtPlot
- Qwt使用之QwtPlot
- Qwt使用之QwtPlot
- Qwt之Plot
- QWT之QwtClipper 类
- QWT使用之QwtPlotCurve
- QWT
- QWT
- qwt
- android之拨盘界面
- 关于线程池的“惊群效应”
- 重庆大学软件学院2013级操作系统实验一:系统调用
- Java常用工具类总结(三)
- android的video的介绍
- Qwt之QwtDateScaleDraw时间标尺
- MotionEvent的事件类型和触控点索引的理解
- 后台开发面试问题整理
- C语言中联合体union的使用
- 利用后缀数组 前缀 LCP最长公共前缀求第K大的子串
- 你必须知道的【闭包】陷阱和案例-非常好
- Ubuntu 常用命令
- 通过httpclient和urlconnection下载网络文件
- ALUA,AA,多路径