Tkinter框架组件不显示:如何将按钮居中置于框架底部
解决按钮不可见及底部居中问题
你的代码问题在于frame_btn未被正确配置以占据有效空间,导致内部的按钮容器无法正常显示。以下是修改后的代码,可实现按钮在窗口底部居中的效果:
from tkinter import * import tkinter as tk root = tk.Tk() root.geometry('900x650+0+0') root.title("SV Configuration") root.eval('tk::PlaceWindow . center') # 配置root的grid布局,让column1可横向扩展 root.grid_columnconfigure(1, weight=1) # 让row4占据窗口剩余纵向空间,确保按钮区域固定在底部 root.grid_rowconfigure(4, weight=1) frame_btn = Frame(root) # 让frame_btn横向填满column1,纵向贴住底部边缘 frame_btn.grid(row=4, column=1, sticky="sew") # 创建按钮容器,固定在frame_btn底部 btn_container = Frame(frame_btn) btn_container.pack(side=BOTTOM, pady=20) # pady控制按钮与底部的间距 # 创建按钮并水平排列在容器中 ok_btn = Button(btn_container, text="Ok") cancel_btn = Button(btn_container, text="Cancel") ok_btn.pack(side=LEFT, padx=10) cancel_btn.pack(side=LEFT, padx=10) root.mainloop()
关键修改说明:
- 配置grid权重:通过
root.grid_columnconfigure(1, weight=1)让column1可横向扩展,确保frame_btn填满窗口宽度;root.grid_rowconfigure(4, weight=1)让row4占据剩余纵向空间,固定按钮区域在底部。 - 调整frame_btn的sticky属性:
sticky="sew"让frame_btn贴住左、右、下边缘,横向填满对应区域。 - 按钮容器布局:用
pack(side=BOTTOM)将按钮容器固定在frame_btn底部,通过pady调整按钮与底部的距离。 - 按钮水平排列:按钮在容器内用
side=LEFT横向排列,padx控制按钮间的间距,实现整体居中对齐。
如果需要按钮垂直排列,只需将按钮的pack方式改为默认垂直即可:
ok_btn.pack(pady=5) cancel_btn.pack(pady=5)
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

