从widget init获取大小

时间:2015-08-29 09:06:54

标签: python kivy

如何从窗口小部件的init中找出屏幕大小(本例中为小部件)?下面有两个打印功能:一个返回默认的小部件大小,另一个返回小部件的实际大小。

from kivy.app import App
from kivy.uix.image import Image
from kivy.config import Config

class MyScreen(Image):
    def __init__(self, **kwargs):
        super(MyScreen, self).__init__ (**kwargs)
        self.size_hint = 1, 1
        print self.size #returns 100, 100

    def on_touch_down(self, *ignore):
        print self.size #returns real size for the screen 1280 800

class TemplateApp(App):
    Config.set('graphics', 'fullscreen', 'auto')

    def build(self):
        return MyScreen()

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

1 个答案:

答案 0 :(得分:1)

100, 100期间,两者都返回正确的结果,小部件大小 __init__。稍后由其父级更新,在本例中为Window本身。

如果您关心大小更改,请将函数绑定到其大小,以执行您需要的任何更新。