我正在尝试使用PyQt5 QtChart模块在两个不同的选项卡小部件上绘制多个图表,并使用自定义鼠标和键事件来放大和缩小图表。
所以我创建了另一个类来覆盖QChartView类事件,如下所示:
class my_view(QChartView):
def keyPressEvent(self,event):
if event.key() == Qt.Key_Plus:
ex.my_chart.zoomIn() # ex.chart is accessed from outside
if event.key() == Qt.Key_Minus: # self.passed_parameter would be the solution
ex.my_chart.zoomOut()
def mousePressEvent(self, event):
...
def mouseMoveEvent(self, event):
...
def mouseReleaseEvent(self, event):
...
在类Window中是对my_view的调用:
self.my_chart = QChart()
self.my_chart_view = my_view(self.my_chart, self.parent)
可以调用Window类,可以在窗口类之外访问该图表:
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Window()
ex.show()
sys.exit(app.exec_())
当我创建两个my_view实例时出现了问题:
self.my_chart = QChart()
self.my_chart_view = my_view(self.my_chart, self.parent)
self.my_chart1 = QChart()
self.my_chart1_view = my_view(self.my_chart1, self.parent1)
如果我缩放第二个,第一个放大了另一个标签......
所以我的问题是,如果我不知道它是如何在类中命名的话,如何从覆盖的类中访问self.my_chart?
答案 0 :(得分:0)
正如ekhumoro在评论中所述,解决方案是
self.chart().zoomIn()