繁体   English   中英

pyqt4:连接滑块以刷新图

[英]pyqt4: connect a slider to refresh a plot

我试图设计一个GUI刷新的曲线图,即plot(timeS, dataS)使用对应于时间向量(滑块timeS ,我想显示(数据) dataS其在随时间变化)。

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

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

连接插槽时,不会调用该函数,因此

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的定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM