最近突然有一种想研究Qwt源码的想法,一来通过解读源码深入学习Qwt库,掌握如何扩展一个库;二来通过对开源库源码的研究,向大师学习一些编程习惯和设计技巧。
Qwt全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目,可用来绘制各种统计图。目前版本为Qwt-6.0.1。http://qwt.sourceforge.net/
Qwt为具有科学技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据,数据源以数值,数组或浮点数序列等方式提供,输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。
初步计划是,先就最简单的几个独立类进行学习。然后按照标尺相关,图元相关(QwtPlotItem继承体系),数据模板类,独立控件(继承自QWidget),缩放拾取,状态机等分类进行学习。
进度安排如下:
一、4月17日—4月28日: 即五一假期前完成以下类的学习。
QwtClipper
QwtPainter
QwtPoint3D
QwtPointPolar
QwtInterval
QwtIntervalSample
QwtSetSample
QwtSpline
QwtSystemClock
QwtSamplingThread
二、4月29日—5月1日: 即五一期间完成标尺相关类的学习。
三、5月1日—5月31日: 即六一前完成图元相关类及数据模板类的学习。
四、6月1日—6月31日: 完成Qwt提供的控件及缩放拾取功能类的学习。
五、7月1日—7月31日: 完成剩余工作。
希望能够坚持下来,加油!