python - Pos_hint 和 size_hint 似乎在我的 kv 文件中不起作用,我不知道为什么
问题描述
所以,我一直在尝试一些 Kivy,并且我在我的 kv 文件中引入了一个与以下 python 代码相关联的按钮:
#importing library
import kivy
kivy.require('1.11.1') #version
#importing functionality
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
class FloatLayout(Widget):
username = ObjectProperty(None)
password = ObjectProperty(None)
"""idle code here, does nothing"""
class howyoudoin(App):
def build(self):
return FloatLayout()
if __name__ == '__main__':
howyoudoin().run()
这是我的 kv 文件:
<Button>:
font_size:27
size_hint: 1.0, 1.0
background_color: 0.1, 0.5, 0.6, 1
<FloatLayout>:
Button:
pos_hint:{"top":1.0}
id: btn
text: "button"
不知何故, size_hint ans pos_hint 命令对我不起作用。这将返回我的按钮,但忽略 pos_hint 和 size_hint 命令。
所有其他属性都起作用:当我在代码中更改 font_size 时,运行中的 font_size 也会发生变化。我不知道为什么:(
解决方案
您正在重新定义一个现有的类 ( FloatLayout
),并且通过这样做,您使它变得简单Widget
,而不是Layout
. 既然你FloayLayout
不是a Layout
,那就不尊重size_hint
and pos_hint
。重新定义现有的类通常是一个坏主意。如果要扩展FloatLayout
,请尝试以下操作:
#importing library
import kivy
kivy.require('1.11.1') #version
#importing functionality
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
class MyFloatLayout(FloatLayout):
username = ObjectProperty(None)
password = ObjectProperty(None)
"""idle code here, does nothing"""
class howyoudoin(App):
def build(self):
return MyFloatLayout()
if __name__ == '__main__':
howyoudoin().run()
kv
文件:
<Button>:
font_size:27
size_hint: 1.0, 1.0
background_color: 0.1, 0.5, 0.6, 1
<MyFloatLayout>:
Button:
pos_hint:{"top":1.0}
id: btn
text: "button"
在上面的代码中MyFloatLayout
extends FloatLayout
,所以size_hint
andpos_hint
的Button
现在将被兑现。
推荐阅读
- javascript - Jasmine 是否支持带有 => 的 JavaScript(箭头)
- css - offset-4 元素不对齐
- r - 在r中绘制两组数据
- php - WordPress PHP $_SESSION
- git - 托管私人仓库,无法通过 http(s) 找到
- swift - 材质豆荚 ErrorTextField
- owl - 有没有办法在 SWRL 中使用 xsd:dateTime 计算持续时间,颗粒可以推理?
- date - 更改 WinSCP 时间戳,从指定日期命名的文件夹中获取文件
- angular - 以角度注入具有基类类型的父组件
- ajax - 控制器动作 respond_to 格式错误 ActionController::UnknownFormat