我有一个使用PyQt5和matplotlib编写的GUI应用程序,该应用程序处理专有的XML文件,并绘制其中包含的数据的图像。我发现有时候,无论我的某些小部件中的信号如何连接,都不会调用某些插槽。
一个例子是使用两个QSlider来更新两个QLabel。打开文件时,将发出一个单独的信号,要求处理数据,并设置QSliders的值以匹配文件中数据的最大值和最小值。
但是,当我调用self.slider1.setValue(value1)
和self.slider2.setValue(value2)
时,一个对应的标签会更新,而另一个则不会。这是因为未调用连接到第二滑块的slider.valueChanged
信号的插槽。滑块是同时创建的,并使用相同的方法进行连接。
我已经尝试使用Qt Designer与信号插槽检查器进行连接。我也尝试过使用
@pyqtSlot(int)
def slider_1_valueChanged(self, value1)
和
self.slider_1.connect.valueChanged[int](label.setNum)
连接方法,但这些方法均无效。我以为它与线程有关,但是我对所有这些都还很陌生,所以我不确定从哪里开始调试。但是,当从GUI内部更改值时,可以很好地调用插槽。我想念什么?