C++跨平台开发框架Qt示例:条形图开发

该示例显示了如何创建条形图。条形图将数据集中显示为单独的条形。

Qt组件推荐:

  • QtitanRibbon| 下载试用: 遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart | 下载试用 :是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。并且支持所有主要的桌面。
  • QtitanNavigation | 下载试用 :模拟Microsoft Dynamics CRM-2016/Office 365导航界面和一组控件改善Qt.C ++应用程序用户体验的QtitanNavigation组件。

该示例显示了如何创建条形图。

条形图将数据集中显示为单独的条形,属于类别。

C++跨平台开发框架Qt示例:条形图开发

运行示例

要从Qt Creator中运行该示例,请打开欢迎模式并从示例中选择该示例。有关更多信息,请访问构建和运行示例。

创建条形图

在所有的柱状图中,柱状图的使用方式都是一样的。为了说明各种柱状图之间的区别,我们在示例中使用相同的数据。条形图可视化的数据,是由QBarSet实例定义的。在这里,我们创建集并将数据追加到它们上面。数据在这里用<<操作符进行追加。另外,也可以使用append方法。

 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");    *set0 << 1 << 2 << 3 << 4 << 5 << 6;    *set1 << 5 << 0 << 0 << 4 << 0 << 7;    *set2 << 3 << 5 << 8 << 13 << 8 << 5;    *set3 << 5 << 6 << 7 << 3 << 4 << 5;    *set4 << 9 << 7 << 5 << 3 << 1 << 2;

我们创建系列,并将条形图附加到它上面。该系列拥有小节的所有权。该系列将数据从组到类别进行分组。每个集合的第一个值被归入第一类,第二个值归入第二类,以此类推。

QBarSeries *series = new QBarSeries();    series->append(set0);(set0);    series->append(set1);(set1);    series->append(set2);(set2);    series->append(set3);(set3);    series->append(set4);(set4);

在这里,我们创建图表对象并将系列添加到其中。我们用setTitle设置图表的标题,然后通过调用setAnimationOptions(QChart::SeriesAnimations)开启系列的动画。

   QChart *chart = new QChart();    chart->addSeries(series);(series);    chart->setTitle(("Simple barchart example");    chart->setAnimationOptions((QChart::SeriesAnimations););

要在轴上显示类别,我们需要为此创建一个QBarCategoryAxis。在这里,我们创建带有类别列表的类别轴,并将其设置为与x轴底部对齐,然后将其附加到序列中。该图表获取轴的所有权。对于y轴,我们使用与左侧对齐的值轴。

    QStringList categories;;    categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";     QBarCategoryAxis *axisX = new QBarCategoryAxis();    axisX->append(categories);(categories);    chart->addAxis(axisX(axisX, Qt::AlignBottom););    series->attachAxis(axisX);(axisX);    QValueAxis *axisY = new QValueAxis();    axisY->setRange((0,15);    chart->addAxis(axisY(axisY, Qt::AlignLeft););    series->attachAxis(axisY);(axisY);

我们还想显示图例。要做到这一点,我们从图表中获取图例指针并将其设置为可见。我们还通过将图例的对齐方式设置为 Qt::AlignBottom 来将其放置到图表的底部。

    chart->legend()()->setVisible((true);    chart->legend()()->setAlignment((Qt::AlignBottom););

最后我们将图表添加到一个视图中。我们还为chartView打开抗锯齿功能。

   QChartView *chartView = new QChartView(chart);chart);    chartView->setRenderHint((QPainter::Antialiasing););

该图表已准备好显示。我们将图表设置为窗口的中央小部件。我们还设置图表窗口的大小并显示它。

    QMainWindow window;;    window.setCentralWidget(chartView);(chartView);    window.resize((420, 300);    window.show();();

====================================================

想要了解或购买Qt正版授权的朋友,欢迎咨询官方客服

Qt技术交流群现已开通,QQ搜索群号“765444821或者扫描下方二维码即可加入

C++跨平台开发框架Qt示例:条形图开发

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月11日
下一篇 2021年3月11日

相关推荐

发表回复

登录后才能评论