我试图在for循环中使用带有add_小部件的TwoLineIconListItem,但我不知道如何添加图标。它不接受Icon参数,因为根据文档IconLeftWidget是这样嵌套的:
TwoLineIconListItem:
text: "Two-line item with avatar"
secondary_text: "Secondary text here"
IconLeftWidget:
icon: "language-python"
我知道如何在KV语言中做到这一点,但如何在填充列表的python for循环中做到这一点。这是我得到的最接近的,但它将图标置于文本上方
for i, z, n in zip(x[1::2], x[0::2], range(1,10)):
self.root.ids.todays_workout.add_widget(
IconLeftWidget(icon=f"numeric-{n}-box-multiple-outline"))
self.root.ids.todays_workout.add_widget(
TwoLineIconListItem(text=f"{i}", secondary_text=f"{z}"))
也许是嵌套的add_widget()
?我不知道如何做到这一点
通过第二次查看文档和KivyMD support Discord频道的一些帮助,我找到了解决方案
您需要创建一个从TwoLineIconListItem继承的新类,如下所示:
然后我创建了一个名为listwithicon.kv的新.kv文件,其中包含以下内容(注意类名匹配)
最后,在我的主要KV字符串(或文件)中,我添加了
#: include listwithicon.kv
这些步骤将允许您向函数中添加
icon
参数。只需确保传递ListWithIcon
(您的新类),而不是KivyMD类TwoLineIconListItem
我认为嵌套的
add_widget()
是正确的,但实际上不能这样做,因为add_widget()
返回None
。所以你可以这样做:相关问题 更多 >
编程相关推荐