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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:00:24