gpt4 book ai didi

python - 使用线程更新 Kivy 标签

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:40 25 4
gpt4 key购买 nike

我正在尝试制作一个 Kivy 标签,它显示一个字符串,该字符串只是名称列表。我的最终目标是让您可以添加或删除名称列表,并且标签将指示列表上的名称。截至目前,我的 .py 文件中有一个标签和一个函数,用于将名称列表编译为字符串。

字符串中的每个名称均由“\n”分隔。然而,我的问题是,即使函数返回名称,标签也不会更新并显示名称。我研究了这个问题并听说了线程。但是,我不明白如何在我的案例中使用它,并寻求一些指导。

下面是我的代码:

kv代码:

<SettingsWindow>:
name:"settings"
FloatLayout:
Widget:
canvas.before:
Rectangle:
pos: self.pos
size: self.size
source: "Images/logo_br.png"
Color:
rgba: 0,0,0,.5
Rectangle:
size: 200, 330
pos: self.width/10, self.height/4
Button:
text:"Back"
size_hint: 0.1, 0.1
pos_hint: {"x":0, "y":0}
background_color: 1,1,1,.6
on_release:
app.root.current = "main"
root.manager.transition.direction = 'right'
Label:
text: root.pretty_list_people
size: self.texture_size
pos_hint: {"x":0.35, "y":-0.46}
color: 1,1,1,1
Button:
text:"Show Bros"
size_hint: 0.3, 0.3
pos_hint: {"x":0.3, "y":0.1}
on_press: root.Pretty_Print_People(root.get_str_People())

py代码:

class SettingsWindow(Screen):
pretty_list_people = ""

def get_str_Jobs(self):
return WindowManager.jobs

def get_str_People(self):
return WindowManager.people

def Pretty_Print_People(self, ppl_list):
for person in ppl_list:
self.pretty_list_people += person + "\n"

class HelpWindow(Screen):
pass

class WindowManager(ScreenManager):
jobs = ["Scrub", "Wash", "Clean"]
people = ["Anthony", "Tim", "John"]
job_assignments = {}

我试图只显示必要的代码。

最佳答案

这应该可以工作,使用 kivy 属性:

更改:

pretty_list_people = ""

致:

pretty_list_people = StringProperty ("")

并添加导入:

from kivy.properties import StringProperty

在程序开始时

希望能帮助您解决问题

关于python - 使用线程更新 Kivy 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57243090/

25 4 0