如何从 python 文件中更改 kivy 标签的文本?
Posted
技术标签:
【中文标题】如何从 python 文件中更改 kivy 标签的文本?【英文标题】:How to change text of kivy label from python file? 【发布时间】:2022-01-21 06:00:00 【问题描述】:找不到这个问题的答案。看过类似的帖子,但它们对我不起作用这里是我认为我必须处理的代码的简短 sn-ps
points="12"
class MainApp(MDApp):
root.ids.points_label = points
def build(self):
return Builder.load_file("main.kv")
MainApp().run()
KV:
MDFloatLayout:
MDLabel:
text:
id: points_label
pos_hint: "center_x": .5, "center_y": .5
我也在使用 KivyMD,所以这可能会对流程产生影响,我不知道。 卡在这个问题上一段时间了,希望您能提供帮助。
目标: 尝试将变量设置为 kivy MD 中的标签文本。
这是建议编辑后的代码,但现在显示空白的 kivymd 屏幕。这是所需的代码:
points = "12"
class MyFloatLayout(MDFloatLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.point_label_text = points
class MainApp(MDApp):
def build(self):
return Builder.load_file("main.kv")
INFO:点数仅在本示例中等于 12 千伏:
<MyFloatLayout>
MDLabel:
text: root.point_label_text
pos_hint: "center_x": .5, "center_y": .5
此代码仍然无法正常工作是在 python 文件中导入 kivymd 类以防万一这是问题
from kivymd.uix.floatlayout import MDFloatLayout
希望你能从我更新的帖子中得到一些答案。
【问题讨论】:
【参考方案1】:我建议创建一个自定义的 MDFloatLayout 类,你可以从中分配你的 points 变量,并在 kv 中引用它 例如:
.py
class MyFloatLayout(MDFloatLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.point_label_text = points
.kv
<MyFloatLayout>
MDLabel:
text: root.point_label_text
pos_hint: "center_x": .5, "center_y": .5
【讨论】:
以上是关于如何从 python 文件中更改 kivy 标签的文本?的主要内容,如果未能解决你的问题,请参考以下文章