【发布时间】:2020-04-28 11:51:02
【问题描述】:
我目前正在构建一个应用程序,该应用程序创建一些“媒体”,然后将其提交到文件目录中。 在提交屏幕中,我有 4 个相互叠加的微调器(项目、关卡、房间、类别) 我想要实现的是,当 project 微调器设置为“项目 1”时,level 微调器值会自行填充到项目 1 文件夹中的所有文件中。然后一旦选择了关卡微调器,房间微调器的值就会自动填充等等。
这是我目前的做法:
.py 文件
def update_project_spinner(self):
folderContents = os.listdir(DataBasePath)
values = folderContents[1:]
values.sort()
return values
def update_level_spinner(self, value):
folderLocation = DataBasePath + '/' + self.ids.project_spinner_id.text
folderContents = os.listdir(folderLocation)
values = folderContents[1:]
values.sort()
print(values)
return values
.kv 文件
Spinner:
text: "Project"
size_hint_x: 1
size_hint_y: 0.5
values: root.update_project_spinner()
id: project_spinner_id
on_text:
root.project_spinner_clicked(project_spinner_id.text)
root.update_level_spinner()
GridLayout:
size_hint_x: 1
size_hint_y: 0.5
cols: 2
Spinner:
text: "Level"
size_hint_x: 1
size_hint_y: 1
values: root.update_level_spinner()
id: level_spinner_id
on_text: root.level_spinner_clicked(level_spinner_id.text)
root.update_room_spinner()
Spinner:
text: "Room"
size_hint_x: 1
size_hint_y: 1
values: root.update_room_spinner()
id: room_spinner_id
on_text: root.room_spinner_clicked(room_spinner_id.text)
root.update_category_spinner()
Spinner:
text: "Category"
size_hint_x: 1
size_hint_y: 0.5
values: root.update_category_spinner()
id: category_spinner_id
on_text: root.category_spinner_clicked(category_spinner_id.text)
项目微调器工作正常,因为它的值是在构建时设置的,其他需要更新的微调器我遇到了麻烦。更改值中的数据似乎没有问题,但它不会在 gui 上更新,但我真的很感谢一些帮助。
【问题讨论】:
标签: python kivy kivy-language