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

Guizero中按钮文本大小无法调整,按钮尺寸反而变大的问题

问题:Guizero中调整按钮文本大小导致按钮尺寸变大

我正在为痴呆症患者开发一款记忆测验应用——家属/亲友可预先将日常记忆内容录入SQL数据库,应用会据此向患者提问日常相关问题。用Guizero开发GUI时,尝试增大按钮文本尺寸,却出现按钮本身跟着变大的情况,相关代码如下:

box1=Box(Todays_Quiz, layout = "auto", width = 1000, height = 700)
emptyspace =Text(box1, text="")
question1= Text(box1, "What time did you wake up?", width = "fill")
question1.bg= "#A1A9A9"
question1.text_size= 20
emptyspace =Text(box1, text="""


""")

wakeupAnswer1 = get_q1_answers(0)
wakeupAnswer2 = get_q1_answers(1)
wakeupAnswer3 = get_q1_answers(2)

wakeup1 = PushButton(box1, width = 50, height = 5, text = wakeupAnswer1, command=change_score1) # correct answer
emptyspace =Text(box1, text="")
wakeup2 = PushButton(box1, width = 50, height = 5, text = wakeupAnswer2, command=next_question1)
emptyspace =Text(box1, text="")
wakeup3 = PushButton(box1, width = 50, height = 5, text = wakeupAnswer3, command=next_question1)

wakeup1.bg="#fa7a7a"
wakeup1.text_size = 15
wakeup2.bg="#fa7a7a"
wakeup2.text_size =15
wakeup3.bg="#fa7a7a"
wakeup3.text_size = 15

原因

Guizero的PushButton组件默认会根据文本尺寸自动调整自身大小,即便预先设置了width和height,修改text_size后,组件会重新计算所需尺寸并覆盖之前的手动设置。

解决方法

方法1:先设置文本尺寸,再固定按钮尺寸

调整代码顺序,先设置text_size,再指定width和height,让固定尺寸覆盖文本自动调整逻辑:

# 创建按钮时先不指定尺寸
wakeup1 = PushButton(box1, text = wakeupAnswer1, command=change_score1)
wakeup1.bg="#fa7a7a"
wakeup1.text_size = 15
# 再设置固定尺寸
wakeup1.width = 50
wakeup1.height = 5

wakeup2 = PushButton(box1, text = wakeupAnswer2, command=next_question1)
wakeup2.bg="#fa7a7a"
wakeup2.text_size =15
wakeup2.width = 50
wakeup2.height = 5

wakeup3 = PushButton(box1, text = wakeupAnswer3, command=next_question1)
wakeup3.bg="#fa7a7a"
wakeup3.text_size = 15
wakeup3.width = 50
wakeup3.height = 5

方法2:使用text_width控制文本显示宽度

设置文本的显示宽度,让文本自动换行,同时保持按钮尺寸不变:

wakeup1 = PushButton(box1, width = 50, height = 5, text = wakeupAnswer1, command=change_score1)
wakeup1.bg="#fa7a7a"
wakeup1.text_size = 15
wakeup1.text_width = 48  # 留出少量边距,避免文本撑满按钮

方法3:锁定组件尺寸

通过resize方法禁止按钮自动调整宽高:

wakeup1 = PushButton(box1, width = 50, height = 5, text = wakeupAnswer1, command=change_score1)
wakeup1.bg="#fa7a7a"
wakeup1.text_size = 15
wakeup1.resize(False, False)  # 禁止宽度和高度自动调整

内容的提问来源于stack exchange,提问作者Aaisha Garda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:20:19