将一组小部件添加到 ModalView 中kivy
以便模态窗口动态适应其所有内容的正确方法是什么(而不将高度设置为硬编码的像素大小)?
我有以下示例脚本:
#!/usr/bin/env python3
import kivy
from kivy.uix.modalview import ModalView
from kivy.lang import Builder
from kivy.app import App
KV = """
BoxLayout:
ModalView:
size_hint: 0.9, None
BoxLayout:
orientation: 'vertical'
Label:
text: 'Dialog Title'
font_size: 30
Label:
text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
Label:
text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
Label:
text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
Label:
text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
StackLayout:
orientation: 'rl-tb'
Button:
text: "OK"
size_hint: None, None
size: self.texture_size
padding: '8dp', '8dp'
Button:
text: "Cancel"
size_hint: None, None
size: self.texture_size
padding: '8dp', '8dp'
"""
class MyApp(App):
def build(self):
return Builder.load_string( KV )
MyApp().run()
正如 kivy 语言所描述的那样,我希望模态框以应用程序的 90% 宽度出现,并且高度应该动态调整以适应模态框的所有内容。
模态的内容应该是一个“标题”标签,下面有一组“正文”标签。在这些标签下方应该是出现在同一行的两个按钮。很直接。
但这就是我得到的:
请注意,上图显示:
- 按钮大多在模式之外
- 标题标签部分位于以下标签之上(这不是 BoxLayout 的工作方式)
- 标题标签也部分在模式之外
如何修复此脚本以使模式的内容按预期显示?