【发布时间】:2019-05-05 08:46:11
【问题描述】:
我正在学习 Tkinter,在构建通用窗口、框架和所有小部件以感受界面时,我遇到了一个问题,我无法弄清楚它为什么会这样。
我创建了一个根窗口,有 3 个框架,每个框架都有一个按钮。本练习的目的是确保框架和根窗口能够正确拉伸。
窗口和框架可以,但我注意到第一个框架上的按钮保持居中,但第 2 帧和第 3 帧上的其他按钮没有。
我只是想了解为什么会这样。
代码如下:
import tkinter as tk
MW = tk.Tk()
MW.title("TK Main Window")
MW.config(bg='#8FBC8F',padx=5,pady=5,relief=tk.RIDGE,bd=3)
FRM1 = tk.Frame(MW,bd=3,relief=tk.RIDGE,bg='#1E90FF',padx=10,pady=10)
FRM1.grid(row=0,column=0,sticky=tk.E + tk.W + tk.N + tk.S,padx=5,pady=5)
FRM1.rowconfigure(0,weight=1)
FRM1.columnconfigure(0,weight=1)
bt1 = tk.Button(FRM1, text="FRM1 button")
#bt1.grid(row=0,column=0,sticky=tk.W)
bt1.grid()
FRM2 = tk.Frame(MW,bd=3,relief=tk.RIDGE,bg='#B0C4DE',padx=10,pady=10)
FRM2.grid(row=1,column=0,sticky=tk.E + tk.W + tk.N + tk.S,padx=5,pady=5)
FRM2.rowconfigure(1,weight=1)
FRM2.columnconfigure(0,weight=1)
bt2 = tk.Button(FRM2, text="FRM2 button")
bt2.grid()
FRM3 = tk.Frame(MW,bd=3,relief=tk.RIDGE,bg='#FFE4B5',padx=10,pady=10)
FRM3.grid(row=2,column=0,sticky=tk.E + tk.W + tk.N + tk.S,padx=5,pady=5)
FRM3.rowconfigure(2,weight=1)
FRM3.columnconfigure(0,weight=1)
bt3 = tk.Button(FRM3, text="FRM3 button")
bt3.grid()
MW.rowconfigure(0,weight=1)
MW.rowconfigure(1,weight=1)
MW.rowconfigure(2,weight=1)
MW.columnconfigure(0,weight=1)
MW.mainloop()
这是它的外观:
【问题讨论】: