早就知道 Qt 5.7 中引入了 QtChart 模块。一直没时间试用。周末正好空闲,就简单的试了试 QtChart。QtChart 学起来还是挺简单的,基于 Qt Graphics View Framework,只要了解 Qt Graphics View Framework 是怎么回事,那就没有任何的难度。
下面是我写的一个简单的测试代码,画了个简单的 sin 曲线。
程序中 QChartView 类似于 Qwt 中的 QwtPlot ,可以当作个绘图控件来用。 QLineSeries 类似于 Qwt 中的 QwtPlotCurve。QChart 类在 Qwt 中没有对应的类。
简单的说,QChartView 负责显示,QChart 则负责管理所有的数据。
#include <QApplication>
#include <QChartView>
#include <QLineSeries>
using namespace QtCharts;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLineSeries* line1 = new QLineSeries();
for(double x=0; x<10; x+=0.1)
{
line1->append(x,sin(x));
}
line1->setName("sin(x)");
QChart chart;
chart.addSeries(line1);
chart.createDefaultAxes();
//chart.legend()->hide();
chart.legend()->setAlignment(Qt::AlignRight);
chart.setTitle("line chart");
chart.setTheme(QChart::ChartThemeDark);
QChartView view(&chart);
view.setRenderHint(QPainter::Antialiasing);
view.show();
return a.exec();
}
(以前我一直都在使用 qwt,qwt 其实也很好用,而且也在不停的更新,最新的版本已经到了 6.1.3。我在几个项目中都用到了 QWT,没遇到什么大问题。所以大家也可以放心大胆的用。)