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

如何使Tkinter中的退出按钮置于其他选项按钮下方?

解决Tkinter退出按钮布局问题

问题根源在于你把三个按钮直接放在同一个frame里,btn1左对齐、btn2右对齐后,它们占据了frame的水平宽度,剩余的垂直空间集中在中间区域,导致exit_btn用side=tk.BOTTOM时只能在这个中间空间里靠下,看起来像在两个按钮中间。

解决方法是把btn1和btn2放到一个子frame中,让这个子frame和退出按钮在主frame里垂直排列:

import tkinter as tk
root = tk.Tk()
root.title("Window title")
root.config(bg='#FFFFFF')
frame = tk.Frame(
    master=root,
    bg='#FFFFFF'
)
frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

label = tk.Label(
    master=frame,
    text="Select an option",
    height=1,
    width=40,
    bg='#FFFFFF'
)
label.pack(side=tk.TOP, fill=tk.BOTH, pady=4)

# 新增子frame来容纳两个选项按钮
btn_frame = tk.Frame(master=frame, bg='#FFFFFF')
btn_frame.pack(side=tk.TOP, fill=tk.BOTH, pady=4)

btn1 = tk.Button(
    master=btn_frame,
    text="Option 1",
    height=1,
    width=20,
    bg='#FFFFFF'
)
btn1.pack(side=tk.LEFT, fill=tk.BOTH, padx=4)

btn2 = tk.Button(
    master=btn_frame,
    text="Option 2",
    height=1,
    width=20,
    bg='#FFFFFF'
)
btn2.pack(side=tk.RIGHT, fill=tk.BOTH, padx=4)

exit_btn = tk.Button(
    master=frame,
    text="Exit",
    height=1,
    width=5,
    bg='#FFFFFF'
)
exit_btn.pack(side=tk.TOP, fill=tk.BOTH, padx=4, pady=4)

root.mainloop()

关键改动点:

  • 新增btn_frame作为两个选项按钮的容器,将其pack到主frame的顶部
  • 把btn1和btn2的父容器改成btn_frame
  • 退出按钮直接在主frame里垂直排列,此时用side=tk.TOP或side=tk.BOTTOM都能实现上下布局(根据需求调整即可)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:45:31