我正在尝试更新画布上的Label,但是只有当我从MyApp(APP)调用update()方法时,它才会更改。
有趣的是obj Slider(触摸)方法完美工作
snapshot.hasData
我正在尝试更新画布上的Label,但是只有当我从MyApp(APP)调用update()方法时,它才会更改。
有趣的是obj Slider(触摸)方法完美工作
答案 0 :(得分:0)
您的代码有一些问题:
color
的{{1}}属性需要四个值的列表,每个值的范围是0到1。在{{1中将Label
更改为self.label_text =Label(text= "0",color = (255,0,0))
}}类。self.label_text =Label(text= "0",color = (1,0,0,1))
从未被绘制过。您需要将Canvas_w
添加到Label
的{{1}}方法中。self.add_widget(self.label_text)
类中还有另一个__init__()
,该类被绘制在Canvas_w
中Label
的顶部。解决上述问题后,我相信您的代码将按预期工作。
如果您呼叫Label_l
,则好像Label
的{{1}}子级已被删除。实际上,它并没有被删除,但是只是不可见(可能被覆盖)。使其可见的一种方法是,只需将其删除就可以确保最后绘制,然后重新添加(最后添加的子项最后绘制),如下所示:
Canvas_w
经过更多的研究,我相信self.canvas.clear()
正在从label_text
中删除Canvas_w
的图形。但是,您可以使用以下方法在 self.canvas.clear()
self.remove_widget(self.label_text)
self.add_widget(self.label_text)
上绘制图形:
canvas.clear()
在Label
方法中。而不是使用:
Canvas
使用:
canvas.before
我相信完成上述操作后,您的with self.canvas.before:
将会正确显示。