我正在研究一個基於PySide的應用程序,我不斷地獲取值並希望將它們放到GUI中。
當我收到的值轉換我他爲int,並通過PySide.QtCore.Signal是否可以用lambda函數檢索Qt信號的內容?
Signal = PySide.QtCore.Signal(int)
# as soon as a new value is received and processed
Signal.emit(new_value)
發出他現在(我通過使用PCANBasic庫中的CAN設備接收它們)我嘗試顯示在PySide.QtGui.QSlider我NEW_VALUE,這就是我目前做:
my_slider = PySide.QtGui.QSlider()
Signal.connect(change_slider_value)
# with a simple helper function
def change_slider_value(value):
my_slider.setValue(value)
我想要做的是:
Signal.connect(lambda value = data : my_slider.setValue(value))
隨着數據是牛逼他是我emited與信號(我喜歡以某種方式紀念它,但格式化disappeaered對我和我的第一篇-.-)
當我測試這個我得到以下回溯:
self.calibrate.bar_val_signal.connect(lambda value = data: self.UI.calibrate.ctrl.Bar.setValue(value)) # self.change_bar_value)
NameError: global name 'data' is not defined
(你看,節目可能較爲複雜) 翻譯成我們的僞代碼,它可能是這樣的:
Signal.connect(lambda value = data: my_slider.setValue(value))
NameError: global name 'data' is not defined
在我看來,問題是,lambda函數不能得到的值了的信號。 有沒有人有一個想法,如果有可能不需要幫助功能的工作。
在此先感謝
謝謝,工作得很好! –