【问题标题】:Get size from widget init从小部件初始化中获取大小
【发布时间】:2016-07-05 17:38:25
【问题描述】:

如何从小部件的 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()

【问题讨论】:

    标签: python kivy


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您抽出宝贵的时间,绑定到大小,返回 3 个值,如下所示: [0.0, 100] [1170.0, 100] [1170.0, 800] 我只需要最后一个值,但是相反,我得到了第一个。不确定我做对了。我使用 on_size 打印尺寸值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多