首页 > 解决方案 > Kivy - 在 for 循环中更改按钮属性

问题描述

我正在开发一个小计算器应用程序只是为了好玩,我正在尝试学习 Kivy。这是一些按钮的屏幕截图。

添加了默认颜色的按钮。

我使用 for 循环将按钮添加到网格布局中。这是代码:

    #add number buttons
    nums = [7,8,9,4,5,6,1,2,3,'.',0,'%']
    for num in nums:
        btn = Button(text=str(num))
        self.numbers.add_widget(btn)

我想删除默认颜色,然后将其更改为我自己的颜色选择。我将上面的代码更改为:

    #add number buttons
    for num in nums:
        btn = Button(text=str(num))
        # Only colors one of the nine buttons - not sure why!
        #Remove the default color
        btn.background_disabled_normal = ''
        #Add the color I want
        btn.background_color = (0,1,(13/255))
        self.numbers.add_widget(btn)

这是结果的屏幕截图:

尝试更改颜色后的按钮。

我想我认为它每次通过循环时都会执行两行新代码,但事实并非如此。我在这里想念什么?

在此先感谢您的帮助。

标签: pythonfor-loopkivy

解决方案


我认为你需要改变:

btn.background_disabled_normal = ''

至:

btn.background_normal = ''

并改变:

btn.background_color = (0,1,(13/255))

至:

btn.background_color = (0,1,(13/255),1)

推荐阅读