【问题标题】:Is there a way to adjust the size of content in a Kivy popup有没有办法在 Kivy 弹出窗口中调整内容的大小
【发布时间】:2021-02-02 22:38:38
【问题描述】:

我在 Kivy 中做了一个弹出窗口,但我不确定如何编辑内容和标签的大小。当我缩小窗口时,内容会延伸到弹出窗口的一侧;我希望内容(和标签)在缩小窗口时动态缩小。

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()

【问题讨论】:

    标签: python kivy popup


    【解决方案1】:

    首先,您可以让Labeltext_size 跟随Labelsize。这将强制将Labeltext 绘制在Label 内。你可以定义一个自定义的Label

    class MyLabel(Label):
        pass
    

    然后为该新类定义kv 规则:

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

    以上实现了text_sizeMyLabelsize的绑定。然后在您的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 中文本所需的字体大小。

    【讨论】:

      猜你喜欢
      • 2021-11-27
      • 2021-12-04
      • 2012-07-24
      • 2021-04-07
      • 2019-10-22
      • 2011-05-15
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      相关资源
      最近更新 更多