簡體   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