服务器之家

服务器之家 > 正文

Qt创建并显示柱状图的方法

时间:2021-11-08 14:50     来源/作者:我不是微光

创建一个简单的柱状图

第一步:创建一个qbarset对象;qbarset类代表条形图中的一组条形。

?
1
2
3
4
5
qbarset *set0 = new qbarset("jane");
qbarset *set1 = new qbarset("john");
qbarset *set2 = new qbarset("axel");
qbarset *set3 = new qbarset("mary");
qbarset *set4 = new qbarset("samantha");

  这样的话相当于我们创建了五个条组,也就是说会有五组数据。

第二步:接下来为这五个条组添加数据

?
1
2
3
4
5
*set0 << 1 << 2 << 3 << 4 << 13 << 6;
*set1 << 5 << 0 << 0 << 4 << 15 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

第三步:创建一个qbarseries对象,qbarseries类将一系列数据显示为按类别分组的竖线。

?
1
2
3
4
5
6
qbarseries *series = new qbarseries();
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

第四步:创建一个qchart用来装qbarseries对象;qchart是一个qgraphicswidget,可以在qgraphicsscene中显示。

?
1
2
3
4
qchart *chart = new qchart();
chart->addseries(series);
chart->settitle("simple barchart example");
chart->setanimationoptions(qchart::seriesanimations);

第五步:创建一个qchartview来显示表格

?
1
qchartview *chartview = new qchartview(chart);

第六步:将qchartview添加到一个主窗口然后显示出来。

?
1
2
3
4
qmainwindow window;
window.setcentralwidget(chartview);
window.resize(420, 300);
window.show();

  然后我们运行就能看到下面这样一个柱状图。

Qt创建并显示柱状图的方法

柱状图优化

  虽然我们已经成功的显示出了一个条形图,但是这样看上去好像并不是很美观,在实际应用中也会达不到我们想要的效果。然后我们再稍微给它优化一下。

首先给它添加一个坐标轴

?
1
2
3
4
5
6
qstringlist categories;
categories << "jan" << "feb" << "mar" << "apr" << "may" << "jun"//保存横坐标字符串的列表
qbarcategoryaxis *axis = new qbarcategoryaxis();
axis->append(categories);
chart->createdefaultaxes();  //创建一个默认的坐标轴
chart->setaxisx(axis, series);  //设置x坐标轴

  然后让它把标签数据显示出来

?
1
2
series->setlabelsposition(qabstractbarseries::labelsinsideend);  //设置标签显示的位置
series->setlabelsvisible(true);  //设置数据标签可见

  这样我们就得到了下面这样一个柱状图。

Qt创建并显示柱状图的方法

  然后我们可以给表格设置一个主题

?
1
chart->settheme(qchart::chartthemebluecerulean);

  可以把设置图例的位置设置到下方

?
1
chart->legend()->setalignment(qt::alignbottom);

  最后看效果,这样子看上去就好了很多对吧。

Qt创建并显示柱状图的方法

  最后,当我们想把图表显示到我们的布局中去该怎么显示呢?

  当我们试图把qchartview添加到一个qwidget上去时发现我们无法做到,这里的话我们就需要借助qhboxlayout了。

  就像下面这样:

?
1
2
3
4
5
6
//...
qwidget *widget = new qwidget();
qhboxlayout m_phlayout = new qhboxlayout();
m_phlayout->addwidget(chartview);
widget->setlayout(m_phlayout);
//...

到此这篇关于qt创建并显示柱状图的方法的文章就介绍到这了,更多相关qt 柱状图内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/yysky/p/13621252.html

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部