首页 > 解决方案 > 如何将kivy中的标签调整为我的屏幕大小?

问题描述

嗨,我创建了这个 kivy 应用程序。我只想知道如何将标签调整为整个屏幕的大小。而且,如果我用鼠标调整屏幕大小,标签也会自行调整到该屏幕的大小。我知道要做到这一点,我们需要使用size: root.width, root.height. 但这是在 kivy 文件中完成的。如果我想在我的 python 文件本身中执行此操作怎么办?感谢您的建议。

请参考以下代码:

import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.widget import Widget

class MyGrid(Widget):
    def __init__(self, **kwargs):
        super(MyGrid, self).__init__(**kwargs)
        self.inner = GridLayout()
        self.inner.cols = 1
        self.add_widget(self.inner)
        self.inner.add_widget(Label(text = 'Hi!'))


class MyApp(App):
    def build(self):
        return MyGrid()


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

标签: pythonkivy

解决方案


您可以使用Window.heightandWindow.width属性和on_size方法来实现这一点。如下修改代码所示:

import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.widget import Widget
from kivy.core.window import Window

class MyGrid(Widget):
    def __init__(self, **kwargs):
        super(MyGrid, self).__init__(**kwargs)
        self.inner = GridLayout()
        self.inner.cols = 1
        self.add_widget(self.inner)
        self.inner.add_widget(Label(text = 'Hi!'))

    def on_size(self, *args):
        self.inner.height = Window.height
        self.inner.width = Window.width

class MyApp(App):
    def build(self):
        return MyGrid()


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

推荐阅读