当我尝试使用滑块信号更改matplotlib条形图的高度时,没有任何反应。
主要.py:
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QHBoxLayout, QSlider, QWidget
import matplotlib
import matplotlib.pyplot as plt
matplotlib.use('qt5agg')
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg
class Canvas(FigureCanvasQTAgg):
def __init__(self):
fig = plt.figure()
self.ax = fig.add_subplot()
super(Canvas, self).__init__(fig)
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.slider = QSlider()
self.slider.valueChanged.connect(self.move_slider)
self.canva = Canvas()
self.bar = self.canva.ax.bar(0, 99)
layout = QHBoxLayout()
layout.addWidget(self.canva)
layout.addWidget(self.slider)
cont = QWidget()
cont.setLayout(layout)
self.setCentralWidget(cont)
# self.bar[0].set_height(1)
def move_slider(self, value):
self.bar[0].set_height(1)
print("Slider moved!")
app = QApplication(sys.argv)
w = Window()
w.show()
app.exec()
当滑块移动时,会向控制台发送一条消息,并且图形保持相同的高度。
此外,如果您通过函数更改高度__init__,那么它会以某种方式起作用。
我无法弄清楚问题是什么?
调用方法
draw()。Python FigureCanvasQTAgg.draw 使用示例
安装您的导入并尝试: