将一组小部件添加到kivy
中的ModalView中,以使模式窗口动态适应其所有内容(而不将高度设置为硬编码像素大小)的正确方法是什么
我有以下示例脚本:
#!/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 langauge所描述的,我希望一个模式显示为应用程序宽度的90%,高度应该动态调整以适应模式的所有内容
模态的内容应该是一个“标题”标签,下面有一组“正文”标签。这些标签下面应该有两个按钮,它们显示在同一行上。非常直截了当
但我得到的是:
请注意,上图显示:
如何修复此脚本以使模态的内容按预期显示
您可以在
kv
中放置一条规则,描述如何构建ModalView
,而不使其成为任何小部件的子部件。见documentation。您可以使用如下规则:然后在python代码中,创建如下
ModalView
:如果使用
size_hint: 0.9, None
,则必须指定ModalView
的height
。最简单的方法是让小部件通过使用子项的minimum_height
进行计算。大概是这样的:请注意,使用
minimum_height
要求该Layout
的子级必须具有定义良好的heights
相关问题 更多 >
编程相关推荐