有没有办法调整 Kivy 弹出窗口中内容的大小

Is there a way to adjust the size of content in a Kivy popup

我在 Kivy 中制作了一个弹出窗口,但我不确定如何编辑内容和标签的大小。当我缩小 window 时,内容会超出弹出窗口的一侧;我希望内容(和标签)在缩小 window.

时动态缩小

Picture of Problem

我该怎么做呢?这是我的弹出窗口的代码:

def invalidtop1():
toppop1 = Popup(title = 'Invalid Input', size_hint=(.8, .4), content = Label(text = 'Must have J = |j1 - j2|, |j1 - j2| + 1, ..., j1 + j2.'))

toppop1.open()

作为第一个剪辑,您可以让 Labeltext_size 跟在 Labelsize 之后。这将强制 Labeltext 绘制在 Label 内。您可以定义自定义 Label:

class MyLabel(Label):
    pass

然后为新 class 定义一个 kv 规则:

Builder.load_string('''
<MyLabel>:
    text_size: self.size
''')

以上实现了text_size绑定到MyLabelsize。然后在 Popup:

中使用 MyLabel 代替 Label
toppop1 = Popup(title = 'Invalid Input', size_hint=(.8, .4), content = MyLabel(text = 'Must have J = |j1 - j2|, |j1 - j2| + 1, ..., j1 + j2.'))

您可能需要将 halign='center', valign='center' 添加到 MyLabel 以获得更令人愉悦的外观。这只会在一定程度上有所帮助。更复杂的解决方案是计算适合 Label.

中的文本所需的字体大小