这个代码不工作,请纠正我,并指导我如何使它。
-.py文件
class RLB(Widget):
pass
class Bars(Widget):
pass
class FGHApp(App):
pass
FGHApp().run()-FGH.kv文件
我在这里想做一个自定义的小部件命名为'RLB‘,我想让它像其他任何内置的小部件一样多次使用它,如按钮,标签,..
#My custom widget
Bars:
<RLB>:
canvas:
Color:
rgba:self.color
RoundedRectangle:
pos:self.pos
size:self.size
radius: [10]
<Bars>:
FloatLayout:
size:root.size
RLB:
#Error
color:(1,0,1,1)
pos:(100,100)
size:(200,200)
RLB:
#Error
color:(1,0,0,0.5)
pos:(300,300)
size:(200,200)发布于 2021-08-27 21:38:51
您应该定义以后要更改的属性
class RLB(Widget):
# you can give an initial value white for example
# You don't need to add pos and size properties, since Widget already has those proprties.
color=ListProperty([1,1,1,1])然后你应该引用这个属性是kv文件
<RLB>:
# use root instead of self
canvas:
Color:
rgba:root.color
RoundedRectangle:
pos:root.pos
size:root.size
radius: [10]你也可以使用来自here的任何kivy属性,有很多这样的属性
发布于 2021-08-28 04:58:44
最后我自己完成了:) 1我们必须创建一个窗口小部件类,并在上面添加所有的说明,比如颜色,大小,..This是因为我们不能编辑窗口小部件类,所以我们通过继承它来创建一个窗口小部件类的副本
<Wp@Widget>:
size_hint:None,None
size:(dp(100),dp(100))
pos:(0,0)
color:(1,1,1,1)现在Wp是我们的新窗口小部件,有所有必需的东西,在此之后,我们必须使我们自己的窗口小部件谁继承了这个'Wp‘类。
<RLB@Wp>:
canvas:
Color:
rgba:root.color
RoundedRectangle:
pos:root.pos
size:root.size
radius: [dp(10),]现在它完成了,现在我们可以通过改变它的颜色,大小和位置来使用它任意的次数。
<Bars>:
FloatLayout:
size:root.size
RLB:
color:(1,1,0,1)
pos:(0,0)
size:(100,100)
RLB:
color:(1,0,1,1)
pos:(100,100)
size:(100,100)现在在.py文件中不需要这样做了
#not needed
class RBL(Widget):
passhttps://stackoverflow.com/questions/68956848
复制相似问题