我已经实现了一个条形图,现在想在双击条形图时获取值。我了解插槽和信号概念,并且能够在双击时调用该函数,但不确定我应该使用什么参数来获取值。这是代码:
import sys
from PyQt5.QtWidgets import (QApplication, QMainWindow)
from PyQt5.QtChart import QChart, QChartView, QHorizontalBarSeries, QBarSet, QBarCategoryAxis,
QValueAxis
from PyQt5.Qt import Qt
from PyQt5.QtGui import QPainter
from PyQt5.QtChart import *
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.resize(800, 600)
set0 = QBarSet('A')
set1 = QBarSet('B')
set0.append([1, 2, 3, 4, 5, 6])
set1.append([5, 0, 0, 4, 0, 7])
series = QBarSeries()
series.append(set0)
series.append(set1)
chart = QChart(
chart.addSeries(series)
chart.setTitle('ABC')
chart.setAnimationOptions(QChart.SeriesAnimations)
technology = ('Oracle', 'Teradata')
axisY = QValueAxis()
axisY.applyNiceNumbers()
chart.addAxis(axisY, Qt.AlignLeft)
series.attachAxis(axisY)
axisX = QBarCategoryAxis()
axisX.append(technology)
chart.addAxis(axisX, Qt.AlignBottom)
series.attachAxis(axisX)
chart.legend().setVisible(True)
chart.legend().setAlignment(Qt.AlignBottom)
chartView = QChartView(chart)
chartView.setRenderHint(QPainter.Antialiasing)
self.setCentralWidget(chartView)
series.doubleClicked.connect(self.bar_double_clicked)
def bar_double_clicked(self, axisX,technology):
print(axisX )
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())