Qt开发案例: 横向条形统计图

该示例显示了如何创建水平条形图。QHorizontalBarChart 将集合中的数据显示为单独的条形,这些条形按类别分组。QHorizontalBarChart 的工作方式与 QBarChart 类似,不同之处在于条形图是在图表上水平绘制的。

Qt组件推荐:

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

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

QHorizontalBarChart 将集合中的数据显示为单独的条形,这些条形按类别分组。QHorizontalBarChart 的工作方式与 QBarChart 类似,不同之处在于条形图是在图表上水平绘制的。

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

我们创建系列并将条形集附加到它。该系列拥有 barsets 的所有权。该系列将数据从集合分组到类别。每个集合的第一个值被组合在第一个类别中;第二个类别中的第二个值,依此类推。

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

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

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

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

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

我们也想展示传奇。为此,我们从图表中获取图例指针并将其设置为可见。我们还通过将其对齐设置为Qt::AlignBottom将图例放置在图表的底部。

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

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

 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”或者扫描下方二维码即可加入

Qt开发案例:  横向条形统计图

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月23日
下一篇 2021年7月23日

相关推荐

发表回复

登录后才能评论