Tkinter组件使用pack方法设置pady无效且显示异常如何解决
问题产生原因
- 你为
status_frame设置了pack_propagate(0),强制锁定了Frame的高度为你指定的60px,不会随内部子组件的尺寸自动调整。 pack()方法的pady参数如果传入单个数值,会在组件的上下两侧同时添加等量的外边距。你设置pady=25后,Label自身高度加上下各25px的总高度已经超过了Frame的60px固定高度,因此出现内容溢出裁切的问题。pack()默认会将组件在可分配空间内垂直居中,因此你添加等量上下边距后,Label不会向上偏移,反而会因为总高度超限被裁切。
解决方法
如果要使用pack()方法将Label向上调整位置,只需要将pady参数修改为上下边距不等的元组格式即可,元组第一个值为顶部外边距,第二个值为底部外边距:
# 示例:顶部留5px边距,底部不留边距,Label会向上靠齐 status_label.pack(side=LEFT, padx=5, pady=(5, 0))
你可以按需调整元组第一个数值的大小,数值越小Label位置越靠上。
另外你的代码里存在一处笔误:style.configure('status.TLabel', background='while')中的while应为white,建议修改避免后续出现样式异常。
内容的提问来源于stack exchange,提问作者Scooter
相关产品推荐
相关产品推荐

