【问题标题】:How can I create a custom listview item in kivy?如何在 kivy 中创建自定义列表视图项?
【发布时间】:2014-03-07 08:20:56
【问题描述】:

我正在尝试使用 kivy 在 python 3.3 中为列表视图创建自定义列表视图项。

一个列表项应该由一个标签和 3 个按钮组成。

我创建了一个列表视图,其中适配器 cls 设置为自定义项类,如下所示:

        ListView:
            id: cue_list
            adapter: ListAdapter(data=[], cls=ListItemButton)
            item_strings: []

然后我这样设置班级规则:

<ListItemButton>:
    size_hint_y: root.size_hint_y
    height: root.height
    orientation:"horizontal"
    Button:
        size_hint: 0.2, 1.0
        text: "delete"

然后在我的 python 文件中创建一个函数来添加一些项目:

    def addcue(self):
        self.lv.adapter.data.extend(["new item"])
        self.lv._trigger_reset_populate()

但奇怪的是,结果是这样的: http://i.stack.imgur.com/dNmz1.png

如何使用 .kv 文件语言在 kivy 中从头开始指定列表视图项?

【问题讨论】:

    标签: python listview kivy


    【解决方案1】:

    您的小部件具有 ListItemButton 的属性和样式,因为...嗯,这就是继承的工作原理。如果您不想这样做,请创建您自己的列表项小部件子类化http://kivy.org/docs/api-kivy.uix.listview.html#kivy.uix.listview.SelectableView。例如,ListItemButton 是SelectableViewButton 的子类。

    此外,所有删除按钮都重叠,因为 ListItemButton 不是布局,因此对您提供的 size_hint 信息没有任何作用,因此所有按钮的默认位置为 0,0,默认大小为 100,100。如果您想要布局行为,请将您的列表项类设为布局,例如BoxLayoutSelectableView 的子类。

    【讨论】:

      猜你喜欢
      • 2014-10-15
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多