QChart绘制图形的缩放原理

8 篇文章 0 订阅

QChart类是管理图表系列、图例和轴的图形表示。想知道某段代码实现的原理,最直观的就是查看框架库的底层源代码,同时也可以锻炼阅读他人代码的能力及学习人家的某些高妙语法。来看看Qt关于缩放的实例

实例中表明是摁键盘上的+/-进行缩放功能,调用QChart类的zoomIn()和zoomOut()。找到QChart的源代码如下:d_ptr又是什么东西,且看

原来是QChartPrivate类哦,继续找到QChartPrivate的zoomIn(qreal factor)源代码

原来是根据原有视图范围大小和缩放因子按比例缩小得出新的矩形面积,m_dataset又是什么东西??

继续找到ChartDataSet文件类中的zoomInDomain(const QRectF &rect);

这里就是遍历图层,接着层层缩放,其中d_ptr是qabstractseries.h文件中 QScopedPointer<QAbstractSeriesPrivate> d_ptr;的定义,来看看domain()是什么东西?

在添加图层addSeries()函数中 申请XYDomain()。继续找到XYDomain文件中的zoomIn()函数。如下图所示

根据计算好矩形框获取最小值minX,minY和最大值maxX,maxY设置视图的横纵坐标的范围。从这个例子可以看出,Qt源代码基本没有做任何的异常考虑,所以一般用windbg工具来定位程序闪退,内存失败等等bug。

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值