QT图表动画

2024-04-23 18:27:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python成功地从c++移植了qtchart代码。我也使用动画图表使用self.chart.setAnimationOptions(QChart.SeriesAnimations),但当按钮被点击时,并不像我预期的那样。 enter description here 我想这样动画https://mdbootstrap.com/snippets/jquery/marta-szymanska/853286当按钮被点击。 有没有别的解决办法。干杯 here is my snippet code

    self.chart = QChart()
    self.chart.setTheme(QChart.ChartThemeDark)
    self.chart.legend().hide()
    self.chart.setTitle("Simple areachart example")
    self.create_default_chart()
    self.chartView = QChartView(self.chart)
    self.chartView.setRenderHint(QPainter.Antialiasing)
    self.chartView.repaint()
    self.chartView.update()
    self.btn1 = QPushButton("Actual")
    self.btn1.setCursor(cursor)
    self.btn1.setSizePolicy(sizePolicy)
    self.btn2 = QPushButton("Predicted")
    self.btn2.setCursor(cursor)
    self.btn2.setSizePolicy(sizePolicy)
    self.btn1.clicked.connect(self.onClicked)
    self.btn2.clicked.connect(self.onClicked1)
    self.verticalLayout.addWidget(self.btn1)
    self.verticalLayout.addWidget(self.btn2)
    self.verticalLayout.addWidget(self.chartView)
    self.show()

def create_default_chart(self):
    series0 =  QLineSeries()
    for i in range(len(x2)):
        series0.append(i,x2[i])
    pen = QPen(QColor.fromRgb(29, 140, 248, 0))
    pen.setWidth(0)
    series0.setPen(pen)

    ''' here is stack animate code '''
    self.chart.setAnimationOptions(QChart.SeriesAnimations)
    #self.chart.setAnimationOptions(QChart.AllAnimations)
    #self.chart.setAnimationOptions(QChart.GridAxisAnimations)
    self.chart.addSeries(series0)
    self.chart.createDefaultAxes()

def onClicked(self,event):
    #updating data series
    self.chart.removeAllSeries()
    series0 =  QLineSeries()
    for i in range(len(x)):
        series0.append(i,x[i])
    pen = QPen(QColor.fromRgb(29, 140, 248, 0))
    pen.setWidth(0)
    series0.setPen(pen)
    self.chart.addSeries(series0)
    self.chartView.update()

Tags: selfherechart动画按钮penbtn2btn1