【发布时间】:2018-11-29 19:26:26
【问题描述】:
我尝试在kivy 1.10.1 框架中创建一个函数,理论上该函数可以创建一组多个圆圈。它使用具有给定半径的参数形式计算球体中心的位置。在这种情况下,我希望字母表中的每个字母都有一个圆圈。我为每个字母创建了一个新的Letter 小部件,但每当它尝试添加位置属性时,它会返回一个带有任何键的KeyError: 'A'(我认为我在self.add_widget(Letter(id=letter)) 中分配了)我尝试获取。
Main.py:
from kivy.app import App
from kivy.uix.widget import Widget
import math
import string
class Letter(Widget):
pass
class MainWidget(Widget):
def __init__(self, **kwargs):
super(MainWidget, self).__init__(**kwargs)
theta = 0
for letter in string.uppercase:
coord_x = 100 * math.cos(theta)
coord_y = 100 * math.sin(theta)
self.add_widget(Letter(id=letter))
self.ids[letter].center_x = coord_x
self.ids[letter].center_y = coord_y
theta += 360./float(len(string.uppercase))
class MainApp(App):
def build(self):
return MainWidget()
if __name__ == '__main__':
MainApp().run()
Main.kv:
#:kivy 1.10.1
<Letter>:
size: 50,50
canvas:
Color:
rgb: 0,0,0
Ellipse:
pos: self.pos
size: self.size
<MyWidget>:
canvas:
Rectangle:
pos: self.pos
size: self.size
【问题讨论】:
标签: python python-2.7 kivy