所以我想办法给Kivy动态添加标签,但后来我意识到
Kivy已经有了一个listview模块,这会让事情变得更简单。我发现这个Python Kivy ListView: How to delete selected ListItemButton?答案对于学习如何实现listview很有用,但是我想知道如何添加一个两列的listview,它用两个文本框中的文本更新。我编辑了示例中的代码,作为我想做的事情的概念证明,到目前为止,我得到的是:# main.py
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_1.text + " | " + self.task_input_2.text])
self.task_list._trigger_reset_populate()
def del_task(self, *args):
if self.task_list.adapter.selection:
selection = self.task_list.adapter.selection[0].text
self.task_list.adapter.data.remove(selection)
self.task_list._trigger_reset_populate()
class TodoApp(App):
def build(self):
return TodoRoot()
if __name__ == '__main__':
TodoApp().run()
以及
^{pr2}$
这样做是可行的,但是有点笨拙,我希望将两个文本输入中的文本放入listview的单独列中,但是每一行仍然可以被选为一行。在