在kivy中添加小部件

2024-04-28 22:26:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在屏幕中间构建一个小部件。我没有使用pos_提示或size_提示,因为稍后我将更改小部件的位置,但是当我构造小部件时,它的大小和位置不正确。这是我的代码:

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.widget import Widget
from kivy.graphics import *
from kivy.clock import Clock


class Sprite(Widget):

    def __init__(self, **kwargs):
        super(Sprite, self).__init__(**kwargs)
        Clock.schedule_interval(self.update_canvas, 1.0/60)

    def update_canvas(self, dt):
        with self.canvas:
            Rectangle(size=self.size, pos=self.pos)


class RootWidget(FloatLayout):
    def __init__(self, **kwargs):
        super(RootWidget, self).__init__(**kwargs)
        self.add_widget(Sprite(
            size=(Window.width*0.1, Window.height*0.1),
            center=(Window.width*0.5, Window.height*0.5)
        ))


class MyApp(App):
    def build(self):
        app = RootWidget()
        return app

if __name__=="__main__":
    MyApp().run()

为什么小部件的大小不等于窗口大小的1/10,为什么它位于窗口右上角的中心?


Tags: fromposimportselfappsizeinit部件