You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy开发时TextInput组件width属性修改后不生效问题求助

问题原因

Kivy 的 BoxLayout 会默认通过 size_hint 属性自动分配子控件的尺寸,只有先把水平方向的 size_hint_x 设为 None,手动设置的 width 属性才会生效,你之前的配置未关闭 size_hint,所以宽度修改没有任何作用。

解决方法

方案1:设置固定宽度

给需要自定义宽度的 TextInput 加上 size_hint_x: None 配置,再指定实际宽度值即可,示例:

TextInput:
    multiline:False
    id:username
    hint_text:"Username"
    padding:[20,20,20,20]
    size_hint_x: None
    width: 300 # 替换为你需要的实际宽度即可

注意你之前写的width:1为极窄的1像素宽度,实际使用时填写合理的数值即可

方案2:按比例适配宽度

如果不需要固定像素宽度,想让输入框适配不同屏幕尺寸,可以直接调整 size_hint_x 的值,不需要设置 width,比如设为 0.8 就代表输入框占父布局宽度的80%:

TextInput:
    multiline:False
    id:username
    hint_text:"Username"
    padding:[20,20,20,20]
    size_hint_x: 0.8

优化建议

你当前代码中嵌套了多层垂直方向的 BoxLayout,内层的 BoxLayout 已经配置了左右各50的内边距,如果你希望所有输入框宽度保持一致,也可以直接给内层的 BoxLayout 设置 size_hint_x,输入框默认 size_hint_x: 1 会自动占满父布局宽度,不需要逐个给输入框配置尺寸。

内容的提问来源于stack exchange,提问作者Ulto 4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:06:08