我最近在Kivy中创建了一个填充的Circle
,当窗口重新调整为不同的宽度或高度时,它会保持圆形。我在这里看了一下这个问题:
但是当我像我这样实现我的Circle
时:
<BigCircle>
width: min(self.size)
height: min(self.size)
pos_hint: {'center_x': .5, 'center_y': .5}
canvas:
Color:
rgb: 1, 1, 0
Ellipse:
size: self.size
pos: self.pos
<MainScreen>:
FloatLayout
size: root.size
canvas:
Color:
rgb: 1, 1, 1
Rectangle:
size: self.size
BigCircle:
id: big_cir
class MainScreen(Screen):
pass
class MyApp(App):
def build(self):
sm = ScreenManager(transition=NoTransition())
sm.add_widget(MainScreen(name="Main"))
return sm
我收到错误:
[严重] [时钟]警告,在下一帧之前完成了太多的迭代。检查您的代码,或增加Clock.max_iteration属性
我对Clock
无所作为,但我使用ScreenManager
。目前,MainScreen
是唯一的屏幕。如果我将高度/宽度更改为不包括min()
,那么它可以正常工作,但这是保持Circle
循环所必需的。否则,当重新调整大小并且看起来很糟糕时它会变长。
答案 0 :(得分:2)
问题是,由于BigCircle
width
和height
根据size
(宽度,高度)进行调整,因此无限循环。尝试将BigCircle
更改为:
<BigCircle>
canvas:
Color:
rgb: 1, 1, 0
Ellipse:
size: min(self.size), min(self.size)
pos: root.center_x - min(self.size)/2, root.center_y - min(self.size)/2