![](/img/trans.png)
[英]Kivy: How to update 'Label's' text with text from 'TextInput'?
[英]How to update a label's text in a screen - Kivy
我一直在嘗試制作一個程序,不斷更新並顯示從傳感器獲得的讀數。 但是,更新傳感器值后,標簽仍會在后台顯示舊值。 如何在顯示新值之前清除屏幕?
我已經嘗試過self.clear_screen
但這並沒有幫助。 我錯過了什么?
.py文件:
class MainScreen(Screen):
pass
class ScreenThermo(Screen):
def __init__(self,**kwargs):
super(ScreenThermo, self).__init__(**kwargs)
Clock.schedule_interval(self.getTemp, 2)
def getTemp(self,dt):
temperature = sensor.get_temperature()
thetemp = temperature
self.manager.screen_thermo.ids.TempLabel.text = str(thetemp)
def on_enter(self, *args):
self.__init__()
pass
class ScreenManagement(ScreenManager):
pass
.kv文件
ScreenManagement:
id: screen_manager
screen_thermo: screen_thermo
MainScreen:
ScreenThermo:
id: screen_thermo
name: 'thermo'
manager: screen_manager
<MainScreen>:
name: "main"
Label:
text: "Welcome to \n Interactive HealthCare \n System"
font_size: 60
halign: 'center'
valign: 'middle'
pos_hint: {'x': .01, 'y': .05}
on_touch_down: app.root.current = "thermo"
<ScreenThermo>:
Label:
text: "temperature"
font_size: 60
text_size: root.width, None
size: self.texture_size
halign: 'left'
valign: 'middle'
Label:
id: TempLabel
text: "temperature updated"
font_size: 60
text_size: root.width, None
size: self.texture_size
halign: 'center'
valign: 'middle'
ScreenThermo
顯示2個標簽,但它們被覆蓋或疊加,即一個在后台,另一個在前景。
添加BoxLayout
以分隔兩個Labels
。
<ScreenThermo>:
BoxLayout:
Label:
text: "temperature"
font_size: 60
text_size: self.size
halign: 'left'
valign: 'middle'
Label:
id: TempLabel
text: "temperature updated"
font_size: 60
text_size: self.size
halign: 'center'
valign: 'middle'
正在顯示舊值,因為以下內容創建了一個可以垂直增長但將文本包裝在一定寬度的Label。
Label:
text_size: root.width, None
size: self.texture_size
text_size: root.width, None
和size: self.texture_size
。 text_size: self.size
。 以下代碼將此大小綁定到Label的大小,因此文本將在小部件邊界內對齊。 這也將自動包裝Label的文本以保留在此區域內。
Label:
text_size: self.size
halign: 'right'
valign: 'middle'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.