如何在 kivy python 中使用 size_hint 制作标签
Posted
技术标签:
【中文标题】如何在 kivy python 中使用 size_hint 制作标签【英文标题】:How to make a label with size_hint in kivy python 【发布时间】:2016-09-10 14:32:42 【问题描述】:我正在尝试在 floatlayout 中使用 size_hint 制作标签,但我意识到这不起作用。我想制作一个响应大小的标签,因为该应用程序将在不同尺寸的屏幕上运行。我是用kivy语言做的,代码是:
Label:
text: "I'm trying to make a label with size_hint_y"
size_hint_y: 0.6 #doesn't work, always the same size of font
pos_hint: 'center_x':0.5,'center_y':0.36
【问题讨论】:
“响应式设计”是什么意思?你想得到什么结果?尺寸提示有效。您可以通过为标签添加背景来检查它 响应式屏幕意味着如果我更换设备,我会在另一个屏幕尺寸上看到相同的比例。例如,如果我在智能手机中看到该应用,并且标签字体大小为 25,可能在 pc 中是正确的,但在智能手机中无法正常显示。 【参考方案1】:#doesn't work, always the same size of font
size_hint_y 控制小部件的大小,而不是字体。请改用font_size
。
【讨论】:
但是如果我使用另一个设备更改屏幕尺寸,则无法正确看到,因为标签没有响应。我想获得一个可以在其他设备(智能手机、电脑......)中以相同方式看到的屏幕。使用另一个小部件可以使用 size_hint 属性来实现,但我意识到这不适用于标签字体大小。 字体大小以像素为单位。要将其与小部件大小相关,请使用例如font_size: 0.6*self.height
。要使其在具有不同像素密度的屏幕上保持相似,请使用 sp
: font_size: sp(15)
。【参考方案2】:
我的字体大小 = 屏幕的垂直分辨率 * 小部件的高度 * .5。它不能完美地工作,但它现在似乎工作得很好。 由于您的 size_hint = .6,我会尝试
font_size = (Window.size)[1] * .6 * .5
我还添加了未使用的 KV 文件。我不知道这是否会有所作为。 我的类似程序的代码看起来像这样
我为小部件的大小和字体大小设置了变量
size = (.2, .075)
fontsize = (Window.size)[1] * size * .5
然后添加小部件
self.button = Button(text = "Press Me", size_hint = size, font_size = fontsize)
希望这会有所帮助!
【讨论】:
以上是关于如何在 kivy python 中使用 size_hint 制作标签的主要内容,如果未能解决你的问题,请参考以下文章