pyqt4:连接滑块以刷新图

时间:2018-06-26 15:23:10

标签: python pyqt pyqt4

我正在尝试设计一个GUI,以使用与要显示的数据(plot(timeS, dataS)的时间向量(timeS)相对应的滑块来刷新图dataS ),但时间会有所不同。

我尝试将滑块连接到绘图功能上,该功能具有很多输入 self.slider.valueChanged.connect(self.myPlotFunction(.....)),位于类的init部分,但无法使用已定义函数myPlotFunction()的输入。

所以我希望当我开始拖动滑块时,图根据滑块的时间/位置而变化。此外,我的时间向量是由浮点数组成的,而滑块允许使用int值。

1 个答案:

答案 0 :(得分:0)

连接插槽时,不会调用该函数,所以

self.slider.valueChanged.connect(self.myPlotFunction(.....))

应该像

self.slider.valueChanged.connect(self.myPlotFunction)

您对myPlotFunction的定义必须与valueChanged信号的自变量签名匹配,所以

def myPlotFunction(self, sliderValue):
    # Do stuff
    pass

如果您需要将更多内容传递给myPlotFunction,则可以使用lambda,并确保适应Qt首先传递的参数,即

otherVar = "some other stuff"
self.slider.valueChanged.connect(lambda sv, ov=otherVar: self.myPlotFunction(sv, ov))

并相应地调整myPlotFunction的定义。