该示例显示了如何创建水平条形图。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 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”或者扫描下方二维码即可加入

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