【发布时间】:2014-09-22 19:34:05
【问题描述】:
我正在尝试通过构建一个简单的待办事项列表应用程序来学习 kivy,就像“在 Kivy 中创建应用程序”一书的作者 Dusty Phillips 所建议的那样。
这是目前为止的代码:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
from kivy.uix.listview import ListItemButton
class TaskButton(ListItemButton):
pass
class TodoRoot(BoxLayout):
task_input = ObjectProperty()
task_list = ObjectProperty()
def add_task(self):
self.task_list.adapter.data.extend([self.task_input.text])
self.task_list._trigger_reset_populate()
def del_task(self):
pass
class TodoApp(App):
def build(self):
return TodoRoot()
if __name__ == '__main__':
TodoApp().run()
这是kv文件:
#: import main todo
#: import ListAdapter kivy.adapters.listadapter.ListAdapter
#: import ListItemButton kivy.uix.listview.ListItemButton
TodoRoot:
<TodoRoot>:
orientation: "vertical"
task_input: task_input_view
task_list: tasks_list_view
BoxLayout:
size_hint_y: None
height: "40dp"
TextInput:
id: task_input_view
size_hint_x: 70
Button:
text: "Add"
size_hint_x: 15
on_press: root.add_task()
Button:
text: "Del"
size_hint_x: 15
on_press: root.del_task()
ListView:
id: tasks_list_view
adapter:
ListAdapter(data=[], cls=main.TaskButton)
这就是它的样子:
我知道 ListView API 仍处于试验阶段,我抱怨有关使用适配器/转换器的示例,谷歌和 SO 搜索也没有帮助。那么需要什么代码才能使 Del-Button 工作并删除选定的 ListItemButton?
【问题讨论】: