| 130 | class ChartView(QChartView): |
| 131 | |
| 132 | def __init__(self, *args, **kwargs): |
| 133 | super(ChartView, self).__init__(*args, **kwargs) |
| 134 | self.resize(800, 600) |
| 135 | self.setRenderHint(QPainter.Antialiasing) # 抗锯齿 |
| 136 | self.initChart() |
| 137 | |
| 138 | self.toolTipWidget = GraphicsProxyWidget(self._chart) |
| 139 | |
| 140 | # line |
| 141 | self.lineItem = QGraphicsLineItem(self._chart) |
| 142 | self.lineItem.setZValue(998) |
| 143 | self.lineItem.hide() |
| 144 | |
| 145 | # 一些固定计算,减少mouseMoveEvent中的计算量 |
| 146 | # 获取x和y轴的最小最大值 |
| 147 | axisX, axisY = self._chart.axisX(), self._chart.axisY() |
| 148 | self.min_x, self.max_x = axisX.min(), axisX.max() |
| 149 | self.min_y, self.max_y = axisY.min(), axisY.max() |
| 150 | # 坐标系中左上角顶点 |
| 151 | self.point_top = self._chart.mapToPosition( |
| 152 | QPointF(self.min_x, self.max_y)) |
| 153 | # 坐标原点坐标 |
| 154 | self.point_bottom = self._chart.mapToPosition( |
| 155 | QPointF(self.min_x, self.min_y)) |
| 156 | self.step_x = (self.max_x - self.min_x) / (axisX.tickCount() - 1) |
| 157 | |
| 158 | # self.step_y = (self.max_y - self.min_y) / (axisY.tickCount() - 1) |
| 159 | |