QChart多个图布局使坐标轴对齐的方法

简介: QChart多个图布局使坐标轴对齐的方法

QChart多个图布局使坐标轴对齐的方法


总体思路


Qt的QChart中并没有提供改变坐标原点位置的接口,因此无法简单的移动坐标原点。但是在多个图表需要在多个View中布局,同时显示多个数据进行对比,而坐标的单位和值会导致原点无法对齐严重影响美观和可视化问题。


虽然无法直接修改坐标原点位置,但是还是有办法保证布局中原点对齐,这里以两个水平分割的图表布局举例,主要思路如下:

1. 截取resizeEvent事件.
2. 获取两个QChartView中的QChart的Margins值和ploatArea的宽度.
3. 计算两个ploatArea的宽度差.
4. 在resizeEvent事件中通过设置Margins来使的两个QChart的左边margins相等就可以达到Y轴对齐了.
5. 同理可以调整X轴.


主要代码


margin_k = self.k_view.chart().margins()
margin_v = self.v_view.chart().margins()
width_k = self.k_view.chart().plotArea().width()
width_v = self.v_view.chart().plotArea().width()
sub = width_k - width_v
if sub > 0:
    self.k_view.chart().setMargins(QMargins(margin_k.left() + sub, margin_k.top(),
                                margin_k.right(), margin_k.bottom()))
else:
    self.v_view.chart().setMargins(QMargins(margin_v.left() - sub, margin_v.top(),
                                margin_v.right(), margin_v.bottom()))


效果预览

相关文章
|
Python
PyQt绘制股票K线多图Y坐标对齐
PyQt绘制股票K线多图Y坐标对齐
404 0
|
存储 搜索推荐 人机交互
Qt鼠标事件全面解析:从基础到实战
Qt鼠标事件全面解析:从基础到实战
2294 0
|
关系型数据库 C++ 容器
Qt开发技术:QCharts(一)QCharts基本介绍以及图表框架详解
Qt开发技术:QCharts(一)QCharts基本介绍以及图表框架详解
Qt开发技术:QCharts(一)QCharts基本介绍以及图表框架详解
|
Linux iOS开发 UED
探索Qt折线图之美:一次详尽的多角度解析
探索Qt折线图之美:一次详尽的多角度解析
1686 0
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
|
关系型数据库 MySQL Linux
Qt连接Mysql出现问题(一):“Driver not loaded Driver not loaded“
第一眼看见这张图我也觉得很奇怪,显示有QMYSQL但是又说没有,这不自相矛盾吗!
2199 4
|
存储 JSON 数据可视化
Qt(C++)使用QChart动态显示3个设备的温度变化曲线
Qt的QChart是一个用于绘制图表和可视化数据的类。提供了一个灵活的、可扩展的、跨平台的图表绘制解决方案,可以用于各种应用程序,如数据分析、科学计算、金融交易等。
672 1
|
11月前
|
监控 开发者 UED
QLineEdit:textChanged、textedited区别
总之,理解 `textChanged`与 `textEdited`之间的细微差别,可以帮助开发者更加精准地控制用户界面的响应逻辑,提升应用程序的互动性和效率。
451 3
|
UED
【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明
【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明
1515 2
|
C++
使用 QML 类型系统注册 C++ 类型
使用 QML 类型系统注册 C++ 类型
393 0