Qwt,即”Qt Widgets for Technical Applications”,是一个用来画各种数据图的Qt库
据说写得比较完善,可以帮人省不少代码…类LGPL许可,毕设的画图部分就用这个东西了
安装参考install文件,比较顺利,不过Mac下面还是得稍微折腾下,具体过程:
cd $QwtDir
qmake -spec macx-g++
make
sudo make install
sudo ln -s /usr/local/qwt-6.0.0/lib/qwt.framework/qwt /usr/lib/qwt
其中$QwtDir是源码文件夹,最后一句ln做符号链接的时候注意版本号要与时俱进
要使用的话在所建工程的.pro文件里加入下面一句:
include(/usr/local/qwt-6.0.0/features/qwt.prf)
而官方文档上的说法,即加入CONFIG += qwt,在我这跑不通…
网上资料很少,只有啃自带的例子,一个最简单的例子是
#include <cmath>
#include <qwt_series_data.h>
#include <qwt_plot_curve.h>
#include <qwt_plot.h>
#include <qapplication.h>
class SinusData: public QwtSyntheticPointData
// QwtSyntheticPointData包含在qwt_series_data.h
{
public:
SinusData():
QwtSyntheticPointData(100)
// 括号里的参数是在一个特定的区间所计算的点的数目
// 自然,数字越大画出来的图越平滑
{
}
virtual double y(double x) const
{
return qSin(x);
}
};
int main(int argc, char **argv)
{
QApplication a(argc, argv);
QwtPlot plot;
plot.setAxisScale(QwtPlot::xBottom, 0.0, 10.0);
plot.setAxisScale(QwtPlot::yLeft, -1.0, 1.0);
QwtPlotCurve *curve = new QwtPlotCurve("y = sin(x)");
curve->setData(new SinusData());
curve->attach(&plot); //把曲线附加到图上
// Qwt貌似是这样,先建立画图区域plot,然后往上面添加曲线和点
plot.show();
return a.exec();
}
上面的注释是我加的,因为也是刚刚接触没多久,所以用了很多”貌似”
以后准备把看过的样例发个注释版出来…
参考了