【发布时间】:2014-10-17 00:04:18
【问题描述】:
我是 Kivy 的新手,对小部件有一些疑问。 几个月前我开始和 Kivy 搞混了。我已经阅读了一些文档,但我可能错过了很多东西。
是否可以使用自己的属性创建同一个小部件类的多个实例?
我的目标是制作几个可以独立调整大小和拖动的矩形。
我正在学习 Java 课程,因此我将与我在该课程中学到的内容进行比较: 例如,假设我设置了一个基本的 rect.java 类来接收宽度和高度的两个变量。
所以在我的主 .java 代码文件中,我会编写类似这样的内容来创建矩形类的一些实例:
rect s1 = new rect(2,3); // width & height
rect s2 = new rect(5,4);
那么,s1.height 和 s2.height 将有不同的值。
是否有可能在 Kivy 中实现类似的功能?现在,我的 .kv 文件中设置了许多具有相同属性的类:
<rect1>:
canvas:
Color:
rgba: 1, 0, 1, 0.5
Rectangle:
pos: root.center_x - root.width/2,root.center_y - root.height/2
size: self.size
<rect2>:
canvas:
Color:
rgba: 1, 1, 0, 0.5
Rectangle:
pos: root.center_x - root.width/2,root.center_y - root.height/2
size: self.size
<rect3>:
canvas:
Color:
rgba: 0, 1, 0, 0.5
Rectangle:
pos: root.center_x - root.width/2,root.center_y - root.height/2
size: self.size
我已经在我的 .py 文件中编写了代码,以便调整它的大小并拖动它。现在,我复制/修改了代码以使用每个附加类。
现在,如果我使用:
Window.add_widget(rect1)
它将直接在旧实例之上创建一个新实例,但它们仍然共享相同的坐标和其他属性等。如果我用鼠标拖动,该类的所有实例都遵循相同的坐标。再一次,我的目标是拥有多个可以独立调整大小和拖动的矩形。
【问题讨论】:
标签: python widget instance kivy