有没有办法调整 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()
作为第一个剪辑,您可以让 Label
的 text_size
跟在 Label
的 size
之后。这将强制 Label
的 text
绘制在 Label
内。您可以定义自定义 Label
:
class MyLabel(Label):
pass
然后为新 class 定义一个 kv
规则:
Builder.load_string('''
<MyLabel>:
text_size: self.size
''')
以上实现了text_size
绑定到MyLabel
的size
。然后在 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
.
中的文本所需的字体大小
我在 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()
作为第一个剪辑,您可以让 Label
的 text_size
跟在 Label
的 size
之后。这将强制 Label
的 text
绘制在 Label
内。您可以定义自定义 Label
:
class MyLabel(Label):
pass
然后为新 class 定义一个 kv
规则:
Builder.load_string('''
<MyLabel>:
text_size: self.size
''')
以上实现了text_size
绑定到MyLabel
的size
。然后在 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
.