网上有很多关于pos机卡交互失败,QChart图表之对图表进行交互操作的知识,也有很多人为大家解答关于pos机卡交互失败的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!
本文目录一览:
pos机卡交互失败
图表交互操作在图表可视化中,一些场景中需要对图表进行交互操作,QChart的各种图表类继承自Qt的GraphicsView 框架,因此可以很方便对图表中的各种元素进行进行交互操作,例如,可以使用鼠标拖动QLineSeries图形序列中的某个点,改变其值,并在图表中交互显示。
使用鼠标进行交互操作,需要在继承自QChartView的类中重新实现三个和鼠标有关的事件函数,它们是mousePressEvent(), mouseMoveEvent()和MouseReleaseEvent(), 记录鼠标移动的点,将其传送给QChart类,然后就其转换成对应图标序列坐标的点,替换序列中相应的点值,就可以实现交互对图表的交互操作。
折线交互操作示例示例代码演示了如何使用鼠标来交互调整QLineSeries中的点,并在图表中动态显示出来。完整代码如下:
import sys, mathfrom PyQt5.QtCore import Qt, Qpoint, QPointFfrom PyQt5.QtGui import QPainter, QPenfrom PyQt5.QtWidgets import QApplication, QMainwindowfrom PyQt5.QtChart import QChart, QChartView, QLineSeries, QAbstractAxis, QValueAxis class MyChart(QChart): def __init__(self, parent=None): super(MyChart, self).__init__(parent) self.clicked = False def clickPoint(self, point): series = self.series()[0] if series is None: return #找到最近的点 self.movingPoint = QPoint() self.clicked = False points = series.pointsVector() for pnt in points: if self.distance(pnt, point) < self.distance(self.movingPoint, point): self.movingPoint = pnt self.clicked = True def distance(self, p1, p2): dx = p1.x() - p2.x() dy = p1.y() - p2.y() return math.sqrt(dx * dx + dy * dy) def setPointClicked(self, clicked): self.clicked = clicked def handlePointMove(self, point): if not self.clicked: return #将从ChartView中单击的点映射到图表所占据的区域。 mappedPoint = point mappedPoint.setX(point.x() - self.plotArea().x()) mappedPoint.setY(point.y() - self.plotArea().y()) #获取x轴和y轴,以便能够将映射的坐标点转换为图表比例。 axisX = self.axes(Qt.Horizontal)[0] hAxis = None if axisX.type() == QAbstractAxis.AxisTypeValue: hAxis = axisX axisY = self.axes(Qt.Vertical)[0] vAxis = None if axisY.type() == QAbstractAxis.AxisTypeValue: vAxis = axisY if hAxis and vAxis: #计算在x轴和y轴上两点的单位因子 xUnit = self.plotArea().width="360px",height="auto" />
运行结果如下图:
本文知识点使用QLineSerie.replace()方法对其中的点进行动态替换。使用鼠标对图表进行交互控制。请多多关注,评论,收藏,点赞,和转发。
前一篇: 实战PyQt5: 159-使用OpenGL加速图表绘制
以上就是关于pos机卡交互失败,QChart图表之对图表进行交互操作的知识,后面我们会继续为大家整理关于pos机卡交互失败的知识,希望能够帮助到大家!
