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

翻译|行业资讯|编辑:鲍佳佳|2021-08-26 10:11:08.393|阅读 38 次

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

# 31款JAVA开发必备控件和工具 # 开发软/控件产品年终优惠

相关链接:

Qt是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中非常有用。而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式设备,Android(Necessitas)和iOS的端口上运行。现在我们为你提供了免费的试用版。

下载Qt6最新试用版

Qt组件推荐:

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

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

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

运行示例

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


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com

文章转载自:the Qt Company

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat