所以我正在使用Kivy GUI编写程序,我真的不想使用.kv文件,而是将它全部写在python文件中.问题是在MainScreen类里面我想添加一些标签,但我不能根据窗口大小的变化使它们的文本换行.当我尝试时self.size我只得到100x100.我已经尝试了Kivy教程书中的所有建议,但没有任何效果.我知道我可以使文本多行使用\n或设置标准标签大小,但这不是一个真正的解决方案.我需要标签大小和文本来跟踪整个窗口的更改和要包装的文本.
我简化了程序,只关注这个问题.
这是代码:
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.graphics import Rectangle, Color
class MainScreen(FloatLayout):
"""MAIN WINDOW CLASS"""
def __init__(self, **kwargs):
super(MainScreen, self).__init__(**kwargs)
with self.canvas.before:
Color(0.988, 0.725, 0.074, 1, mode='rgba')
self.rect = Rectangle(pos=self.pos, size=self.size)
self.bind(size=self.update_rect)
#TITLE LABEL
self.add_widget(Label(text="A very Long Sentence that needs to be wrapped.",
bold = True,
font_size="20sp",
pos_hint={'center_x': 0.5, 'center_y': .85},
size_hint=(None, None),
halign="center",
color=(0.055, 0.235, 0.541, 1)))
def update_rect(self, *args):
"""FUNCTION TO …Run Code Online (Sandbox Code Playgroud)