用户界面-Kivy-〔Critical〕绘制椭圆时警告迭代过多



我最近一直在努力在Kivy中创建一个填充的Circle,当窗口被重新调整为不同的宽度或高度时,它会保持一个圆形。我看了一下这里的问题:

Kivy 中的对象居中

但是当我像这样实现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圆形所必需的。否则,当重新调整尺寸时,它会变长,看起来很糟糕。

问题是,由于BigCirclewidthheight根据其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

相关内容

  • 没有找到相关文章

最新更新