新手在这里尝试测试我的手上的新东西。我试图在另一个屏幕上显示一个屏幕的滑块值。我想要显示的值的屏幕中嵌入了多个屏幕。第一张照片是第一张照片。 home screen that contains multiple screens
以下是此屏幕的代码:
<Thermostat>:
BoxLayout:
orientation: 'horizontal'
cols: 2
Label:
id: Thmo
font_size: "11sp"
text: "INSIDE: 50"
Label:
text: "More Info"
font_size: "11sp"
<Weather>:
BoxLayout:
orientation: 'horizontal'
cols: 2
Label:
id:Temp
text: "OUT TEMP: "+ root.checkWeather()
font_size: "11sp"
Label:
id: Locale
text: root.locale
font_size: "11sp"
下一个屏幕是命令屏幕,如下所示,我希望在主屏幕中更新此屏幕的滑块值。我尝试过使用一个名为TEMP的全局变量,但它没有用。任何帮助,将不胜感激。 command screen
下面是命令屏幕的代码:
<Temperature>:
BoxLayout:
cols: 3
Label:
text: 'THERMOSTAT'
Slider:
id: temp_slider
min: 40
max: 100
value: 40
step: 1
on_value: app.TEMP = str(temp_slider.value)
Label:
id: value
text: str(temp_slider.value)
<Vent>:
BoxLayout:
size_hint_y: None
height: '48dp'
cols: 3
Label:
text: 'VENT'
Button:
id: state
text: 'Open'
on_press: root.Open(state)
Label:
id: cmdErr
答案 0 :(得分:0)
from kivy.app import App
value = App.get_running_app().root.ids.SCREENCONTROLLER.get_screen('SCREENAMEHERE').ids.CHILDWIDGETID.
基本上,你会按照常规身份识别旅行,但是从正在运行的应用程序的最顶层开始,然后向下工作。
'root'这里是Apps Build Method中返回的小部件。您还没有提供该代码,所以我假设您已经返回了屏幕控制器。
进入屏幕控制器后,您可以通过输入您想要进入的屏幕的字符串名称来使用其get_screen方法,然后从他们通过ID找到它,就好像您在该屏幕上一样。