我试着做一个简单的清单程序。那里是“添加”、“删除”和“执行”按钮。但我对标签的颜色有一些缺陷。当我在scrollview中单击“DO IT”按钮时,标签颜色会发生变化,但当我单击remove按钮时,一些颜色的标签会发生变化。我用的是帆布。我怎样才能解决这个问题?
class Home(Screen):
def __init__(self,**kwargs):
super(Home,self).__init__(**kwargs)
def addWidget(self):
task_input = self.ids.task_input.text
newListItem = EachTask(text=task_input ,
id=str((len(self.ids.add_field.children))) )
print(newListItem.id)
self.ids.add_field.add_widget(newListItem)
class EachTask(BoxLayout):
def __init__(self, text= "", **kwargs):
super(EachTask,self).__init__(**kwargs)
self.ids.label.text = text
def Do_Task(self,instance):
child = instance.parent.parent
with self.canvas.before:
Color(.5,1,.2,1, mode='rgba')
Rectangle(pos=child.ids.label.pos, size=child.ids.label.size)
为了解决这个问题,需要对kv和py文件进行以下增强。在
方法1-Kivy自动创建并添加了一个ObjectProperty
rgba
Kivy automatically created & added an ObjectProperty
kv文件
rgba
,并将其初始化为默认颜色,(1, .2, .2, .2)
到类规则<EachTask>:
root.rgba
代码片段-kv文件
py文件
Do_Task()
中的所有代码self.rgba = [.5, 1, .2, 1]
,其中{EachTask
对象。在Snippets-py文件
^{pr2}$方法2-显式声明
rgba
kv文件
rgba: (1,.2,.2,.2)
替换为root.rgba
代码片段-kv文件
py文件
from kivy.properties import ListProperty
ListProperty
类型的类属性rgba
,并将其初始化为默认颜色,[1, .2, .2, .2]
在类EachTask()
中Do_Task()
中的所有代码self.rgba = [.5, 1, .2, 1]
,其中{EachTask
对象。在Snippets-py文件
相关问题 更多 >
编程相关推荐