更新:在与其他人讨论后,我认为这是一个有点愚蠢的问题。我想用更改的宽度设置贝塞尔曲线的动画,但它没有宽度属性。使用直线贝塞尔,我可以改变宽度,但不能设置动画
我不能像Line
那样改变Bezier
曲线的witdh
代码如下:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import *
class MyLayout(Widget):
def __init__(self):
super(MyLayout, self).__init__()
with self.canvas:
self.L=Bezier(points=[200,450,500,300,600,150],width=12)
self.k=Line (bezier=[100,350,400,200,500,50 ],width=12)
class MyApp(App):
def __init__(self):
super(MyApp, self).__init__()
def build(self):
return MyLayout()
if __name__=="__main__":
MyApp().run()
上面的曲线不是width=12
我想这是因为Kivy的Bezier类没有属性width
,因为当我在kv
lang上执行时,它会给我AttributeError: 'kivy.graphics.vertex_instructions.Bezier' object has no attribute 'width'
。那么,为什么不将Line
与bezier
一起使用呢?我想在它上面使用Animation
,当我试图用bezier
在Line
上时,我得到AttributeError: attribute 'bezier' of 'kivy.graphics.vertex_instructions.Line' objects is not readable
如何更改{Ellipse
,并调整它们的大小以模拟宽度
谢谢并请原谅我的英语
该行可以使用
bezier:
,例如:这是一个
Line
,不是一个Bezier
,但是你得到了相同的结果一个例子:
我 或:
Bezier
没有width
属性,但是Line
有。因此,您可以设置width
的动画。一种简单的方法是设置一个保持宽度的NumericProperty
的动画。下面是代码的一个修改版本,它可以:如果您在
kv
中构建Line
,那么您甚至不需要on_line_width()
方法,因为kivy将为您进行绑定相关问题 更多 >
编程相关推荐