2015-08-29 4 views
0

Как узнать размер экрана (виджет в этом случае) из init виджета? Ниже приведены две функции печати: один возвращает размер виджета по умолчанию, а другой возвращает реальный размер виджета.Получить размер от виджета 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

Оба возвращают правильный результат, размер виджет100, 100 во время __init__. Он обновляется позже его родителем, в этом случае самим окном.

Если вы хотите изменить размер, привяжите функцию к ее размеру, которая делает любое обновление, которое вам нужно.

+0

спасибо за то, что уделил время, привязав к размеру, возвращает 3 значения, что-то вроде этого: [0.0, 100] [1170.0, 100] [1170.0, 800] Мне нужно только последнее значение, но вместо этого я получаю первый. Не уверен, что я сделал правильную вещь, хотя .. Я использовал on_size для печати значения размера – MrMonk

Смежные вопросы