Kivy小部件设置尺寸

5

我创建了一个Image对象,想要设置它的大小,但是我无法实现。这是代码,我创建了一个光标对象,它是一张图片,然后我尝试设置它的大小,但是self.size = (10,10)对它没有影响。为什么它不起作用呢?

#!/usr/bin/kivy
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.core.window import Window

class Root(FloatLayout):
    pass

class Cursor(Image):
    def __init__(self, **kwargs):
        super(Cursor, self).__init__(**kwargs)
        self.source = 'crosshair.png'
        self.size = (10,10)        
        self._keyboard = Window.request_keyboard(self._keyboard_closed, self, input_type='text')
        self._keyboard.bind(on_key_down=self._on_keyboard_down)

    def _keyboard_closed(self,**kwargs):
        print "hi"

    def _on_keyboard_down(self,keyboard, keycode, text, modifiers):
        if keycode[1] == 'up': self.y += 10
        elif keycode[1] == 'down': self.y -= 10
        elif keycode[1] == 'left': self.x -= 10
        elif keycode[1] == 'right': self.x += 10


class YardApp(App):
    def build(self):
        layout = Root()
        cursor = Cursor()
        layout.add_widget(cursor)
        return layout


if __name__ == '__main__':
    YardApp().run()
1个回答

7

它的父布局是FloatLayout,根据子元素的pos_hint和size_hint自动设置它们的大小和位置。如果要禁用此行为,请设置self.size_hint = None, None,之后您手动设置大小将生效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接