如何在Tkinter中使用pack方法将两个按钮固定在窗口底部左右两侧
问题原因
你当前的写法中,两次调用pack(side=tk.BOTTOM)会让两个按钮分别独占窗口底部的一整行空间:第一个按钮占据最底部整行、左对齐,第二个按钮占据第一个按钮上方的整行、右对齐,自然无法实现同一行左右两端放置的效果。
解决方案
改动最小的方案是先在窗口底部加一个占满全宽的容器Frame,再将两个按钮放到这个Frame的左右两侧:
- 首先创建底部容器Frame,固定在窗口底部且自动填充水平宽度:
# 仅需在创建按钮前新增这两行代码即可 bottom_frame = tk.Frame(fightWindow) bottom_frame.pack(side=tk.BOTTOM, fill=tk.X)
- 修改按钮的父容器为新建的bottom_frame,调整pack参数:
if not newbuttonthere: # 可合并重复的判断逻辑,不需要写两次相同的判断 new_button = tk.Button(bottom_frame, text="New", fg="black", command=newcharacter, font=("Courier", 20, "bold")) new_button.pack(side=tk.LEFT, padx=10, pady=5) # padx/pady可按需调整按钮的边距更美观 new_button.configure(bg="grey") newM_button = tk.Button(bottom_frame, text="New Monster", fg="black", command=newmonster, font=("Courier", 20, "bold")) newM_button.pack(side=tk.RIGHT, padx=10, pady=5) newM_button.configure(bg="grey")
效果说明
底部的Frame会跟随窗口大小变化自动填充整个水平方向的宽度,其中靠左、靠右放置的按钮也会跟随容器固定在左右两端,调整窗口大小时始终保持在左下角、右下角的位置。
内容的提问来源于stack exchange,提问作者Joshua6014
相关产品推荐
相关产品推荐

