如何使用 OneLineIconListItem 向每个动态项目添加图标。我的代码给出了 TypeError: object.__init__() 没有参数

Posted

技术标签:

【中文标题】如何使用 OneLineIconListItem 向每个动态项目添加图标。我的代码给出了 TypeError: object.__init__() 没有参数【英文标题】:How can i add an icon to each dynamic item using OneLineIconListItem. My code gives TypeError: object.__init__() takes no parameters 【发布时间】:2021-06-28 07:13:03 【问题描述】:

我似乎不明白这个错误,因为如果我从 OneLineIconListItem 中删除作为争论的图标,它可以工作但没有食物图标

class FoodScreen(Screen):
    pass

class FoodApp(MDApp):
    image = StringProperty()
    meal = StringProperty()
    category = StringProperty()
    origin = StringProperty()
    ingre = StringProperty()
    source =StringProperty()
    def __init__(self,**kwargs):
        Window.size = (500,800)
        super().__init__(**kwargs)

    def on_start(self):
        ingredient = self.root.ids['foods'].ids['list']
        url="https://www.themealdb.com/api/json/v1/1/random.php"
        respond = requests.get(url=url).json()
        icons = list(md_icons.keys())
        icon=icons[2193]
        for i in range(1,20):
            if respond['meals'][0][f'strIngredienti'] :
                l= OneLineIconListItem(text=respond['meals'][0][f'strIngredienti'],icon=icon)
                ingredient.add_widget(l)
 
FoodApp().run()

kivymd 还是新手 .kv 文件:

ScreenManager:
    FoodScreen:
        id:foods
        name:"foods"

<FoodScreen>:
    FloatLayout:
        ScrollView:
            pos_hint:'top':.4
            size_hint:1,.5
            MDList:
                id:list

【问题讨论】:

【参考方案1】:

经过@Xyanight 的大量搜索和提示, 首先添加: class ListItem(OneLineIconListItem): icon = StringProperty("food") 并将on_start方法调整为 for i in range(1,20): if respond['meals'][0][f'strIngredienti'] : l= ListItem(text=respond['meals'][0][f'strIngredienti'], icon=self.icon) ingredient.add_widget(l) 在kv文件中添加: &lt;ListItem&gt;: IconLeftWidget: icon: app.icon

其中FoodApp类变量icon =StringProperty()和局部变量self.icon = icons[2193]

【讨论】:

以上是关于如何使用 OneLineIconListItem 向每个动态项目添加图标。我的代码给出了 TypeError: object.__init__() 没有参数的主要内容,如果未能解决你的问题,请参考以下文章

[精选] Mysql分表与分库如何拆分,如何设计,如何使用

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等