1 回答

TA貢獻1998條經驗 獲得超6個贊
我認為你可以通過一些小的修改來完成你想要的。首先添加一個StringProperty到你的ScreenThermo類,并在on_enter()方法中啟動一個線程來運行你的Heartbeatsensot代碼:
from Heartbeatsensot import hearbeatsensot
class ScreenThermo(Screen):
BPM_string = StringProperty('BPM: Not Detected')
def on_enter(self, *args):
Thread(target=hearbeatsensot, args=(self,)).start()
在您的kv文件中,添加對 new 的引用StringProperty:
<ScreenThermo>:
Label:
text: " Pulse rate"
font_size: 50
pos: (35, 100)
Label:
id: TempLabel
text: root.BPM_string # references new StringProperty
font_size: 60
halign: 'center'
valign: 'middle'
現(xiàn)在您只需要將要顯示的任何內容TempLabel放入BPM_string屬性中即可。為此,請更改Heartbeatsensot.py以定義可在Thread. if __name__ == '__main__':只需將該文件中的替換為def hearbeatsensot(screenThermo):如下所示:
import time
# Import the ADS1x15 module.
import Adafruit_ADS1x15
def hearbeatsensot(screenThermo):
adc = Adafruit_ADS1x15.ADS1015()
# initialization
GAIN = 2/3
.
.
.
screenThermo.BPM_string = 'BPM: 65'
.
.
.
然后,在該方法中,只需使用 somethink like screenThermo.BPM_string = 'BPM: 65'(或任何您想要設置的內容)。BPM_string文件中的引用kv將自動設置綁定以更新TempLabel每當BPM_string被修改時。
添加回答
舉報