Qt Example各例子技术点说明(三)

说明:

下面的XX.XX.XX为Qt的版本号,如:5.14.1。
下面总结的都是以Qt的5.14.1版本来说明的,未来的版本也许和这有些不同。
因为Qt自带的例子很多,本博文是第3部分,第1、2、4、5、6部分请参见如下链接:

1.charts

   本大节展示Qt绘制各种折线图、曲线图、区域图、饼状图、直方图等。各种图的样例请参考:

利用QChart绘制各种图的汇总说明》博文。

1.1 areachart


该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\areachart

       本工程展示利用Qt的QAreaSeries绘制区域图。通过本工程,需要掌握如下知识点:

  • QAreaSeries、QLineSeries用法,及如何利用这两个类绘制区域图。
  • QChart、QChartView用法。

1.2.audio

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\audio

       本工程利用Qt的QAudioDeviceInfo、QAudioFormat、QAudioInput类,将本机音频输入设备(如:笔记本电脑中的麦克风)采集到的音频数据通过QLineSeries折线类实时动态画出。通过本工程要掌握如下知识点:

  • 通过QAudioDeviceInfo类获取本机音频设备信息,如:获取麦克风信息。
  • QAudioFormat类封装音频信息。
  • QAudioInput类结合QAudioFormat类及自定义的QIODevice类采集输入本机的音频数据。
  • 如何子类化QIODevice类。
  • QLineSeries、QChartView、QValueAxis用法,并通过这几个类将采集带的音频数据绘制成折线。

1.3.barchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\barchart

       本工程通过Qt的QBarSeries类展示直方图绘制技术。通过本工程需要掌握如下知识点:

  • QBarSeries类用法。
  • 利用QBarSeries、QBarSet绘制直方图。
  • QBarCategoryAxis实现类别、分类坐标轴。
  • QValueAxis用法。
  • 利用QChartView、QChart类展示直方图。

1.4.barmodelmapper

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\barmodelmapper

       本工程通过Qt的QVBarMpdelMapper类将自定义的QAbstractTableModel模型的数据关联到QBarSeries类,以实现直方图的绘制。通过本工程需要掌握如下知识点:

  • QVBarMpdelMapper类用法。
  • QBarSeries类用法。
  • QBarCategoryAxis实现类别、分类坐标轴。
  • QValueAxis用法。
  • 利用QChartView、QChart类展示直方图。
  • 如何自定义QAbstractTableModel模型,具体参见Qt自带例子Examples\Qt-XX.XX.XX\widgets\itemviews  目录,该目录很多关于自定义QAbstractTableModel模型的例子。

1.5.boxplotchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\boxplotchart

       本工程展示了Qt的QBoxPlotSeries类用法,通过该类绘制boxplot图。通过本工程需要掌握如下知识点:

  • QBoxPlotSeries类用法。
  • QBoxSet类用法,及其和QBoxPlotSeries类的关系。
  • 利用QChartView、QChart类展示QBoxPlotSerie图

1.6.callout

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\callout

       本工程展示了Qt的QSplineSeries类用法,通过该类绘制折线图,将折线图加入场景。鼠标光标在折线上悬浮时,能显示鼠标光标点位于折线的点的坐标工具提示,点坐标工具提示可以钉住显示,即不消失。通过本工程需要掌握如下知识点:

  • QSplineSeries类用法。
  • QChart类的mapToValue函数用法。
  • QGraphicsView、QGraphicsSimpleTextItem类用法。
  • QGraphicsItem类的prepareGeometryChange函数作用。
  • QGraphicsItem类的mousePressEvent、mouseMoveEvent鼠标按下、移动事件参数QGraphicsSceneMouseEvent类用法。

1.7.candlestickchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\candlestickchart

       本工程通过QCandlestickSeries类绘制蜡烛架(台)图,通过本工程需要掌握如下知识点:

  • QCandlestickSeries、 QCandlestickSet类用法。
  • QChart、QBarCategoryAxis、QValueAxis、QChartView类用法及相互关系。

1.8.chartinteractions

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\chartinteractions

本工程展示鼠标左键拖动折线的点,将折线上的点拖动到想要的位置,从而改变原来的折线。通过本工程需要掌握如下知识点:

  •      如何自定义QChart子类,即如何从QChart类派生出符合自己需求的子类,要注意QChart有个protected类的构造函数。掌握QChart::ChartType枚举类型各值含义,知道QChart::ChartTypePolar是表示极坐标曲线。
  •      通过获取QLineSeries画笔,从而改变画笔宽度,从而改变所画折线的粗细。
  •      QXYSeries类pressed信号的用法及points()函数能返回线中所有的数据点。
  •      ChartView和QChart的关系及互动。
  •      鼠标移动拖动折线上的点的算法及坐标在不同参照系下的转换。

1.9.chartthemes

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\chartthemes

本工程展示QChart各种曲线折线等的主题颜色、呈现时的动画样式。通过本工程需要掌握如下知识点:

  •      会用QChart::ChartTheme枚举变量设置QChart各种曲线折线等的主题颜色。
  •      会用QChart::AnimationOption枚举变量设置QChart各种曲线折线等首次在界面呈现时的动画样式。
  •      会用Qt::AlignmentFlag枚举变量设置QChart的图例即QLegend对象的停靠方向。
  •      QXYSeries类pointsVector函数能返回线中所有的数据点。
  •      掌握QLineSeries(折线图)、QAreaSeries(区域图)、QPieSeries(饼状图)的绘制。
  •      如何利用QPieSlice作为QPieSeries(饼状图)基本构建元素绘制QPieSeries。
  •      QChartView和QChart的关系及互动。将QChart对象作为参数传入QChartView构造函数构造QChartView对象,在同一个窗体构建多个QChartView。

1.10.scatterchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\scatterchart

本工程展示QScatterSeries(离散点图)的绘制,通过本工程需要掌握如下知识点:

  •  QScatterSeries类用法。
  • 如何绘制符合自己需求的离散点的形状符号,本例是通过在一个透明QImage绘制了一个五角星,然后将该五角星作为画刷来绘制离散点的形状。

1.11.piechart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\piechart

本工程展示QPieSeries(饼状图)的绘制,通过本工程需要掌握如下知识点:

  • 如何利用QPieSlice作为QPieSeries(饼状图)基本构建元素绘制QPieSeries。
  • QChartView和QChart的关系及互动。

1.12.customchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\customchart

 本工程自定义了Qchart,通过绘制一个折线,来展示相关技术点,通过本工程需要掌握:

  • 如何更改QChart及X、Y轴的各种属性,如:QChart背景色、QChart背景是否可见、轴线画笔宽细、轴标签文本画刷、轴字体设置、轴网格线是否可见、阴影画笔、阴影是否可见等属性。
  • QCategoryAxis轴用法。

1.13.datetimeaxis

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\datetimeaxis

本工程展示QDateTimeAxis类(日期时间轴)用法。通过本工程需要掌握对QDateTimeAxis轴各种属性的设置。

1.14.donutbreakdown

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\donutbreakdown

本工程展示多个饼状图叠加形成分割线式的、类似甜饼圈式的饼状图。通过本工程需要掌握如下知识点:

  • 如何自定义QChart及如何自定义QPieSlice。
  • 如何利用QPieSeries类绘制饼状图。
  • 如何在同一个QChart对象上叠加多个饼状图,以形成甜饼圈式的饼状图。
  • QPieLegendMarker类的使用。
  • 通过饼状图类的setPieSize和setHoleSize函数控制中空圆圈大小,从而形成类似甜饼圈。

1.15.donutchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\donutchart

本工程展示甜饼圈式、圆内部中空的饼状图。通过本工程需要掌握如下知识点:

  • 通过饼状图类的setHoleSize函数控制中空圆圈大小,从而形成类似甜饼圈。
  • QPieSlice类的setExploded函数用法。

1.16.dynamicspline

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\dynamicspline

本工程通过定时器实现QSplineSeries对象的横纵坐标不停更新,从而实现一个滚动的QSplineSeries行进的曲线效果。

1.17.horizontalbarchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\horizontalbarchart

本工程展示一个水平方向的直方图,一般情况下的直方图是QBarSeries类表示,其是竖直方向的;而QHorizontalBarSeries类表示的直方图是水平方向的。通过本工程需要掌握如下知识点:

  • 如何利用QHorizontalBarSeries绘制水平方向的直方图。
  • QBarSet和QHorizontalBarSeries的关系。
  • QBarCategoryAxis、QValueAxis类型坐标轴用法。
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.18.horizontalpercentbarchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\horizontalpercentbarchart

本工程展示水平百分比图条、通过本工程需要掌握如下知识点:

  • 利用QHorizontalPercentBarSeries类绘制水平百分比图条。
  • QBarSet和QHorizontalPercentBarSeries的关系。
  • QBarCategoryAxis、QValueAxis类型坐标轴用法。
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.19.horizontalstackedbarchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\horizontalstackedbarchart

本工程展示水平栈图条、通过本工程需要掌握如下知识点:

  • 利用QHorizontalStackedBarSeries类绘制水平栈图条。
  • QBarSet和QHorizontalStackedBarSeries的关系。
  • QBarCategoryAxis、QValueAxis类型坐标轴用法。
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.20.legend

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\legend

本工程展示QChart的QLegend(图例)类的各种属性设置。通过本工程需要掌握如下知识点:

  • 通过isAttachedToChart函数判断QLegend对象是否附加到QChart对象上。
  • 通过detachFromChart、attachToChart函数将QLegend对象从QChart对象分离或附加到QChart对象。当附加时,QChart对象管理QLegend对象布局,即QChart对象布局变化时(如:窗口大小改变),QLegend对象布局也相应改变,而分离时,则不会。
  • 如何设置QLegend对象的画刷、画笔、背景色可见、对齐方式、字体属性。
  • 通过QBarSeries类的append、remove函数分别追加、移除直方图块。

1.21.legendmarkers

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\legendmarkers

本工程展示QLegendMarker类用法。通过本工程需要掌握QLegendMarker类对象的各种属性。须掌握如下知识点:

  • 通过捕获QLegendMarker类的clicked信号,从而实现曲线的显示和隐藏,同时更改图例透明度。
  • QLegendMarker类的type函数返回QLegendMarker::LegendMarkerType类型枚举,该枚举表示QLegendMarker类对象的类型。
  • QLegendMarker类的labelBrush函数返回图例标签的画刷对象。
  • QLegendMarker类的brush函数返回图例图标的画刷对象。
  • QLegendMarker类的pen函数返回图例图标轮廓线的画笔对象。

1.22.lineandbar

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\lineandbar

本工程通过将1个QBarSeries对象和1个QLineSeries对象同时绘制在1个QChart上。通过本工程需要掌握如下知识点:

  • 如何创建QBarSeries及QBarSeries和QBarSet的关系。
  • 如何创建QLineSeries。
  • QBarCategoryAxis、QValueAxis类型坐标轴用法。
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.23.linechart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\linechart

通过本工程需要掌握如下知识点:

  • QLineSeries类对象的创建。
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.24.logvalueaxis

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\logvalueaxis

本工程展示QLogValueAxis坐标轴(幂数坐标轴)用法。通过本工程需要掌握如下知识点:

  • QLogValueAxis幂坐标轴类用法。
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.25.modeldata

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\modeldata

本工程通过QVXYModelMapper类对象将QAbstractTableModel数据模型和QLineSeries类对象进行桥接,模型包含用于绘制QLineSeries类对象的X、Y坐标,当更改模型中的数据时,实现QLineSeries类对象的同步更改。通过本工程需要掌握如下知识点:

  • QVXYModelMapper类用法及和QLineSeries类对象的不同互动。
  • QVXYModelMapper类和QAbstractTableModel的关系。
  • 如何子类化QAbstractTableModel类。
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.26.piechartdrilldown

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\piechartdrilldown

本工程通过点击饼状图的某个片元,实现在两个饼状图之间切换显示。通过本工程需要掌握如下知识点:

  • 如何从QChart派生符合自己需求的图表类对象。
  • 如何从饼状图片元QPieSlice类派生出符合自己需求的饼状图片元。
  • 饼状图类QPieSeries的clicked信号的用法。

1.27.polarchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\polarchart

本工程演示如何绘制极坐标,通过本工程需要掌握如下技术点:

  • QPolarChart类用法及利用该类绘制极坐标。
  • 如何从QChartView类派生出符合自己需求的子类。
  • 如何在QChartView类,实现键盘按键在非极坐标图和极坐标图的切换。
  • 如何在QChartView类,实现键盘按键上、下、左、右滚动图表。
  • QChart类的series、axes、removeSeries等函数的使用。
  • 如何将一个已有QChart类对象的series、axes原样附加到另一个QChart类对象上。

1.28.scatterinteractions

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\scatterinteractions

本工程通过构建两条QScatterSeries类对象,鼠标点击其中一个QScatterSeries对象的点使该点移除到另一个QScatterSeries类对象上去,给人眼的感觉是同一个QScatterSeries的点,鼠标单击后变色了。通过本工程需要掌握如下技术点:

  • 如何绘制QScatterSeries图。
  • QScatterSeries类的points、remove、append、setName函数用法。
  • QXYSeries类的clicked信号的用法。

1.29.splinechart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\splinechart

本工程展示如何绘制QSplineSeries图。通过本工程需掌握如下技术点:

  • QSplineSeries类用法。

1.30.stackedbarchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\stackedbarchart

本工程展示如何绘制QStackedBarSeries图。通过本工程需掌握如下技术点:

  • QStackedBarSeries类用法。

1.31.stackedbarchartdrilldown

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\stackedbarchartdrilldown

本工程通过点击QStackedBarSeries的某个片元,实现在两个QStackedBarSeries图对象之间切换显示。通过本工程需要掌握如下知识点:

  • 如何从QChart派生符合自己需求的图表类对象。
  • 如何从QStackedBarSeries派生出子类。
  • QStackedBarSeries类QPieSeries的clicked信号的用法。

1.32.temperaturerecords

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\temperaturerecords

本工程通过点击QStackedBarSeries类绘制温度记录图,将12个月的最低、最高温度绘制出来。通过本工程需掌握如下技术点:

  • QStackedBarSeries用法。
  • QBarCategoryAxis、QValueAxis坐标轴用法。
  • QChart、QChartView、QLegend类用法及它们之间的关系。

1.33.zoomlinechart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\zoomlinechart

该工程展示通过键盘按键上、下、左、右滚动QLineSeries类对象,在支持触摸功能的情况下,利用手势拖动、缩放QLineSeries类对象;在不触摸功能的情况下,可按下鼠标左键框选一段将曲线放大、按下鼠标右键将曲线缩小。通过本工程需要掌握如下技术点:

  • 如何绘制类QLineSeries对象。
  • grabGesture函数安装手势动作类型。
  • 手势动作类型枚举Qt::GestureType各值含义。
  • QChart类的sceneEvent事件的拦截。
  • QChartView子类化及在QChartView中如何上、下、左、右滚动QChart类对象,即 QChart类zoom、scroll、zoomIn、zoomOut函数用法。
  • 手势相关QGestureEvent、QPanGesture、QPinchGesture类的用法。如果想要学习更多手势相关的知识,请参见Qt安装目录下的如下工程:

                               Examples\Qt-XX.XX.XX\widgets\gestures\imagegestures

1.34.multiaxis

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\multiaxis

本工程展示在一个QChart上放置左、下、右多个坐标轴坐标轴的实现。通过本工程需要掌握如下知识点:

  • 如何在一个QChart上放置多个坐标轴坐标轴。
  • QCategoryAxis、QSplineSeries、QValueAxis类的用法
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.35.nesteddonuts

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\nesteddonuts

本工程将多个饼状图嵌套放置在一起,形成一个嵌套的多饼状图,通过定时器改变饼状图各片角度,从而实现饼状图动态变化效果;通过鼠标在饼状图片上悬浮,改变饼状图片角度。通过本工程需要掌握如下知识点:

  • 如何将多个饼状图嵌套。
  • 对饼状图片的hovered信号的理解。
  • 饼状图类的HoleSize、PieSize、PieStartAngle、PieEndAngle属性的掌握。
  • 饼状图片类的Exploded、LabelVisible、LabelColor、LabelPosition属性的掌握。

1.36.percentbarchart

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\percentbarchart

本工程展示QPercentBarSeries类的使用,通过该类展示百分比图谱用法。通过本工程需要掌握如下知识点:

  • 掌握QPercentBarSeries类的使用。
  • QCategoryAxis、QSplineSeries、QValueAxis、QBarSet类的用法
  • QChartView、QChart、QLegend类用法及它们之间的关系。

1.37.piechartcustomization

该工程存放在Qt安装目录下的

Examples\Qt-XX.XX.XX\charts\piechartcustomization

本工程读取QPieSeries及QPieSeries类的片元类QPieSlice的各种属性到窗体部件,从窗体部件更改QPieSeries类的片元类QPieSlice的各种属性值,通过本工程需要掌握:

  • 如何子类化QPieSlice,即如何从QPieSlice派生符合自己业务需求的饼状片元。
  • QPieSlice类的hovered信号的理解和使用。
  • QPieSeries类的clicked信号的理解和使用。
  • QChart类的AnimationOption枚举值,掌握各种曲线呈现动画效果。
  • QChart类的QChart::ChartTheme枚举值,掌握各种曲线风格效果。
  • 饼状图QPieSeries类的horizontalPosition、verticalPosition、pieSize、pieStartAngle、pieEndAngle、holeSize属性。
  • 饼状图片元类QPieSlice的label、value、pen、brush、labelPosition、labelArmLengthFactor、exploded、exploded、labelBrush属性。

  由于Qt官方自带的例子很多,一下看不完,每看完一个例子,记录一个。未完,待续!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值