动态 Class 无效 - 椭圆
Dynamic Class has no effect - Ellipse
我从 kivy 开始,我已经遇到了一个我无法解决的障碍。我想要的只是在 kv 文件中创建一个动态椭圆 class,然后将其投影到小部件的 canvas 上。
我看到的是它被识别为一个椭圆,但是 none 的属性被接管了(最显着的是大小)。
我在下面给出了我的代码和我所看到的截图。请注意,一个 Ellipse 中的额外尺寸是为了您的观看乐趣而制作的,以使问题更加直观。没有它,我看到三个非常大的圆圈。
我在 ubuntu 16.04 上做这个。如果这很重要
非常感谢您帮助我:)
main.py
#!usr/bin/python3
from kivy.app import App
from kivy.uix.widget import Widget
class SchemeEditor(Widget):
def __init__(self,**kwargs):
super(SchemeEditor, self).__init__(**kwargs)
class SchemeApp(App):
def build(self):
self.load_kv('scheme.kv')
return SchemeEditor()
if __name__ == '__main__':
SchemeApp().run()
scheme.kv
#:kivy 1.9.1
<Dot@Ellipse>:
size: 10, 10
color: 10, 0, 0
<SchemeEditor>:
canvas:
Dot:
id: 1
pos: root.width / 2, (root.width / 3) * 2
size: 10, 10
Dot:
id: 2
pos: root.width / 3, root.height / 3
Dot:
id: 3
pos: (root.width / 3) * 2, root.height / 3
截图
Ellipse 不是 Widget,甚至不是 EventDispatcher。我很惊讶动态分类它完全有效(这似乎是一个错误,我们应该能够检测到这种情况并拒绝尝试),但实际上发生的一切可能归结为 Ellipse 属性实际上不是 Kivy 属性这将与 kv 语言一起正常工作。
我从 kivy 开始,我已经遇到了一个我无法解决的障碍。我想要的只是在 kv 文件中创建一个动态椭圆 class,然后将其投影到小部件的 canvas 上。
我看到的是它被识别为一个椭圆,但是 none 的属性被接管了(最显着的是大小)。
我在下面给出了我的代码和我所看到的截图。请注意,一个 Ellipse 中的额外尺寸是为了您的观看乐趣而制作的,以使问题更加直观。没有它,我看到三个非常大的圆圈。
我在 ubuntu 16.04 上做这个。如果这很重要
非常感谢您帮助我:)
main.py
#!usr/bin/python3
from kivy.app import App
from kivy.uix.widget import Widget
class SchemeEditor(Widget):
def __init__(self,**kwargs):
super(SchemeEditor, self).__init__(**kwargs)
class SchemeApp(App):
def build(self):
self.load_kv('scheme.kv')
return SchemeEditor()
if __name__ == '__main__':
SchemeApp().run()
scheme.kv
#:kivy 1.9.1
<Dot@Ellipse>:
size: 10, 10
color: 10, 0, 0
<SchemeEditor>:
canvas:
Dot:
id: 1
pos: root.width / 2, (root.width / 3) * 2
size: 10, 10
Dot:
id: 2
pos: root.width / 3, root.height / 3
Dot:
id: 3
pos: (root.width / 3) * 2, root.height / 3
截图
Ellipse 不是 Widget,甚至不是 EventDispatcher。我很惊讶动态分类它完全有效(这似乎是一个错误,我们应该能够检测到这种情况并拒绝尝试),但实际上发生的一切可能归结为 Ellipse 属性实际上不是 Kivy 属性这将与 kv 语言一起正常工作。