帮我给上面的代码改一下,使得所有按钮在窗口居中
时间: 2024-12-17 18:29:40 浏览: 1
在原代码中,已经使用`sticky="nsew"`属性使按钮居中,这表示按钮会在其父容器内水平和垂直方向上均匀分布。如果你想让所有的按钮都在整个窗口里居中,而不是仅在其所在格子内居中,可以稍微调整一些布局设置。这里有一个建议的修改:
```python
# 更改grid配置,以便在整个窗口中居中
# 先移除原有的row和column配置
btn.grid_forget()
# 将button放入一个新的frame,并使frame居中
central_button_frame = tk.Frame(root)
central_button_frame.pack(pady=20, fill='both', expand=True)
# 让按钮集中在一个列里,每一行填满可用空间
for i, (text, script_name) in enumerate(scripts):
btn = tk.Button(central_button_frame, text=text, command=lambda s=script_name: run_script(s))
btn.grid(row=i, column=0, padx=10, sticky='ew') # 只需要east和west方向的sticky,使按钮在行内居中
central_button_frame.columnconfigure(0, weight=1) # 使列可扩展
# 然后删除原来的center_frame
button_frame.forget()
```
这段改动将按钮放在一个新的`central_button_frame`中,然后清除原有布局。这样,按钮就会在新添加的框架内水平居中,而框架又会被放置在整个窗口中央,实现了窗口级别的居中。
阅读全文