这是一个应该绘制标签画布的方法:
def update_canvas(self):
c = self.canvas.after
c.clear()
with c:
Color([1, 1, 1, 1])
Line(points=[self.point_from, self.point_to])
if self.texture:
Color([1, 0, 0, 1]) # RED RECTANGLE!
Rectangle(pos=self.pos, size=self.size)
Color([1, 1, 1, 1])
Rectangle(pos=self.pos, texture=self.texture, size=self.texture.size)
用作工具提示的标签,其中还有一条指向工具提示项的行。上面的版本产生了这个输出:
如果我在RED COLOR行之后注释掉Rectangle指令,则会显示:
请注意,文本的标签会呈现两次,因为我还添加了一个Rectangle(texture = self.texture)指令,但这只是用于测试。
通过这个简单的调用将标签本身添加到窗口中:
enter code here
Windows.add_widget(标签)
问题是:为什么我的矩形不是红色的? (实际上我希望它是半透明的。)
答案 0 :(得分:1)
您要将列表[]
传递给Color()
,而Color
至少需要3个参数rgb,rgba,rgb + mode或rgba + mode
试试这个:
def update_canvas(self):
c = self.canvas.after
c.clear()
with c:
Color(1, 1, 1, 1)
Line(points=[self.point_from, self.point_to])
if self.texture:
Color(1, 0, 0, 1) # RED RECTANGLE!
Rectangle(pos=self.pos, size=self.size)
Color(1, 1, 1, 1)
Rectangle(pos=self.pos, texture=self.texture, size=self.texture.size)
如果您想要半透明矩形,请将rgba更改为1,0,0,.5