python - 在 Kivy 中更改 RecycleView 生成的按钮的文本
问题描述
我对 Kivy 不是很有经验,并且一直在尝试阅读文档,但我一直卡住。
我有一个列表 ["1", "2", "3", "4", "5"],我想用它来生成按钮并使用 RecycleView 显示它们。由于美学原因,我不想显示这些值,而是想在按钮上简单地显示“一”、“二”、“三”、“四”、“五”。但是,我需要 ["1", "2", "3", "4", "5"] 仍然使用,因为我希望稍后在单击生成的按钮时引用这些值。
我尝试在 ListResultsButton 类下添加 text: "One" 以使用语法,但不知何故它仍然显示列表中的值。
如果有人可以帮助我在生成的按钮上显示替代文本的方法,我将不胜感激,如果我可以在从第一个列表生成按钮的同时在按钮上显示第二个列表中的文本,那就更好了。
我已经包含了一个图表,以更好地可视化我的问题。 显示问题的图表
Python代码和kv代码:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
test_list = ["1", "2", "3", "4", "5"]
class Test2Root(BoxLayout):
show_list_input = ObjectProperty()
def show_list(self):
#update data in recycleview
self.show_list_input.data = [{'text': str(x)} for x in test_list]
class Test2App(App):
pass
if __name__ == "__main__":
Test2App().run()
#kv code
Test2Root:
<Test2Root>:
show_list_input: show_list_input_ID
orientation: "vertical"
Button:
text: "Press Me"
on_press: root.show_list()
RecycleView:
id: show_list_input_ID
viewclass: 'ListResultsButton'
data: []
RecycleBoxLayout:
orientation: 'vertical'
default_size: None, dp(25)
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
<ListResultsButton@Button>
text: "One"
我真的很感激任何帮助。谢谢!
解决方案
我没有使用 Kivy 的经验。但是,查看代码,我相信以下内容会起作用:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
test_list = ["1", "2", "3", "4", "5"]
# Add text in an array
btns_text = ["One", "Two", "Three", "Four", "Five"]
class Test2Root(BoxLayout):
show_list_input = ObjectProperty()
def show_list(self):
#update data in recycleview
# Change it like this
self.show_list_input.data = [{'text': btns_text[x]} for x in range(len(test_list))]
class Test2App(App):
pass
if __name__ == "__main__":
Test2App().run()
推荐阅读
- linux - 在故障转储中,我应该如何解释指令指针偏移量?
- google-cloud-dataflow - 如何将 Dataflow 的 PubSubIO 与 Pub/Sub 模拟器一起使用?
- python - 使用空列表作为 Series.fillna 的填充值
- gstreamer - 您如何找出 gstreamer 配置文件字符串
- android - 如何确定为我的 Android 应用程序设置哪个 minSDKVersion
- c - 如何运行用c编写的jpegs恢复程序?
- join - 计算分组在第三个表下的两个不同表中的行数
- google-sheets - 将谷歌图纸添加到不受保护的范围?
- maps - 除了android api中的屏幕截图之外,还有其他获取可打印数据的选项吗?
- c - 有充分的理由为什么在 C 中必须将 * 放在每个指针变量之前?