python - 如何将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()
解决方案
您可以使用Window.height
andWindow.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()
推荐阅读
- excel - 将返回的字符串值转换为变量
- python - 数组连接在python中给出错误
- php - 希望根据日期在循环内加快我的 php mysqli 查询
- java - 收到此错误“原因:java.lang.NoClassDefFoundError:com/fasterxml/jackson/core/JsonProcessingException”
- python - 从 Python 中的 pandas DataFrame 中提取数据
- python-3.x - 为什么清理不继续?
- apache - 强制域 Kerberos 身份验证 Apache
- javascript - 创建元素“数据列表”?
- python - 如何同时加入 multiprocessing.Process() 列表?
- reactjs - 如何对数组中的属性值求和并乘以常数值