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'
现在您只需要将要显示的任何内容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被修改时。
添加回答
举报