如何在kivy app的KV文件中显示来自Python的变量值
How to display variable value from Python in KV file in kivy app
我正在尝试将函数 label_title
中的变量 archon2_channel
显示为 MDLabel
文本值。我曾尝试使用 StringProperty(var_name)
,也通过全局变量,但运气不佳...感谢任何有助于解决问题的想法和/或链接。
我将此功能放在应用程序中 class:
Python:
class DemoApp(MDApp):
def build(self):
self.theme_cls.primary_palette = "Green"
self.theme_cls.theme_style = "Dark"
self.standard_increment = STANDARD_INCREMENT
self.load_all_kv_files(os.path.join(self.directory, "libs", "uix", "kv",))
self.load_all_kv_files(os.path.join(self.directory, "libs", "uix", "uix_drawer", "kv"))
self.root_widget = RootWidget()
self.screen_manager = self.root_widget.ids.screen_manager
self.nav_drawer = self.root_widget.ids.navigation_drawer
return self.root_widget
def label_title(self):
url_archon2 = "http://weburrl"
response_archon2 = requests.request("GET", url_archon2, headers=headers, data = "")
archon2_channel = response_archon2.json()['items']['contentChannel']
archon2_ticker = response_archon2.json()['items']['messageScheduleName']
print(archon2_channel)
print(archon2_ticker)
return StringProperty(archon2_ticker)
DemoApp().run()
KV 文件:
MDLabel
text: app.archon2_channel
size_hint_y: None
height: self.texture_size[1]
padding: 0, "20dp"
halign: "center"
theme_text_color: "Primary"
嗯,它实际上刚刚发生了 )) 这就是我所做的,我从函数 label_title() 中删除了代码并将其放入 class DemoApp(MDApp) 级别:
class DemoApp(MDApp):
url_archon2 = "web url"
r_dev_info_archon2 = requests.request("GET", url_archon2, headers=headers, data="")
ch_numb_archon2 = r_dev_info_archon2.json()['items']['contentChannel']
在 KV 文件中:
MDLabel
text: app.ch_numb_archon2
size_hint_y: None
height: self.texture_size[1]
padding: 0, "20dp"
halign: "center"
theme_text_color: "Primary"
比我想象的要容易!
我正在尝试将函数 label_title
中的变量 archon2_channel
显示为 MDLabel
文本值。我曾尝试使用 StringProperty(var_name)
,也通过全局变量,但运气不佳...感谢任何有助于解决问题的想法和/或链接。
我将此功能放在应用程序中 class:
Python:
class DemoApp(MDApp):
def build(self):
self.theme_cls.primary_palette = "Green"
self.theme_cls.theme_style = "Dark"
self.standard_increment = STANDARD_INCREMENT
self.load_all_kv_files(os.path.join(self.directory, "libs", "uix", "kv",))
self.load_all_kv_files(os.path.join(self.directory, "libs", "uix", "uix_drawer", "kv"))
self.root_widget = RootWidget()
self.screen_manager = self.root_widget.ids.screen_manager
self.nav_drawer = self.root_widget.ids.navigation_drawer
return self.root_widget
def label_title(self):
url_archon2 = "http://weburrl"
response_archon2 = requests.request("GET", url_archon2, headers=headers, data = "")
archon2_channel = response_archon2.json()['items']['contentChannel']
archon2_ticker = response_archon2.json()['items']['messageScheduleName']
print(archon2_channel)
print(archon2_ticker)
return StringProperty(archon2_ticker)
DemoApp().run()
KV 文件:
MDLabel
text: app.archon2_channel
size_hint_y: None
height: self.texture_size[1]
padding: 0, "20dp"
halign: "center"
theme_text_color: "Primary"
嗯,它实际上刚刚发生了 )) 这就是我所做的,我从函数 label_title() 中删除了代码并将其放入 class DemoApp(MDApp) 级别:
class DemoApp(MDApp):
url_archon2 = "web url"
r_dev_info_archon2 = requests.request("GET", url_archon2, headers=headers, data="")
ch_numb_archon2 = r_dev_info_archon2.json()['items']['contentChannel']
在 KV 文件中:
MDLabel
text: app.ch_numb_archon2
size_hint_y: None
height: self.texture_size[1]
padding: 0, "20dp"
halign: "center"
theme_text_color: "Primary"
比我想象的要容易!