网格中的默认单元格没有大小。只能使用设置最小大小root.columnconfigure(0, minsize=300)
root.columnconfigure(1, minsize=300)
root.columnconfigure(2, minsize=300)
要创建大标题,可以连接3个单元格
^{pr2}$
您也可以使用sticky='we'使用widget-to-cell-size
网格(…,sticky='we')
w=west/left,e=east/right
工作示例:import tkinter as tk
# - functions -
def fifties(selection):
data = {
"Intro": "1950's intro",
"Political": "1950's politcal",
"Economic": "1950's economic",
"Social": "1950's social",
"Technological": "1950's technological",
"Aesthetic": "1950's aesthetic",
}
if selection in data:
text_1950['text'] = data[selection]
else:
text_1950['text'] = "Unknow selection: " + selection
def sixties(selection):
data = {
"Intro": "1960's intro",
"Political": "1960's politcal",
"Economic": "1960's economic",
"Social": "1960's social",
"Technological": "1960's technological",
"Aesthetic": "1960's aesthetic",
}
if selection in data:
text_1960['text'] = data[selection]
else:
text_1960['text'] = "Unknow selection: " + selection
def seventies(selection):
data = {
"Intro": "1970's intro",
"Political": "1970's politcal",
"Economic": "1970's economic",
"Social": "1970's social",
"Technological": "1970's technological",
"Aesthetic": "1970's aesthetic",
}
if selection in data:
text_1970['text'] = data[selection]
else:
text_1970['text'] = "Unknow selection: " + selection
# - main -
# - init -
root = tk.Tk()
root.configure(bg="turquoise")
root.geometry("900x600")
# - set columns minimal size -
root.columnconfigure(0, minsize=300)
root.columnconfigure(1, minsize=300)
root.columnconfigure(2, minsize=300)
# - header -
lbl = tk.Label(root, text="Pick a Decade", bg="turquoise", fg="hot pink", font=("Times", 40, "bold italic"))
lbl.grid(column=0, row=0, columnspan=3, sticky='we')
# - menus -
options = ["Intro", "Political", "Economic", "Social", "Technological", "Aesthetic"]
var = tk.StringVar(value="1950's")
a = tk.OptionMenu(root, var, *options, command=fifties)
a.grid(column=0, row=2, sticky='we')
var = tk.StringVar(value="1960's")
a = tk.OptionMenu(root, var, *options, command=sixties)
a.grid(column=1, row=2, sticky='we')
var = tk.StringVar(value="1970's")
a = tk.OptionMenu(root, var, *options, command=seventies)
a.grid(column=2, row=2, sticky='we')
# - empty labels for text -
text_1950 = tk.Label(root, bg="turquoise")
text_1950.grid(column=0, row=3)
text_1960 = tk.Label(root, bg="turquoise")
text_1960.grid(column=1, row=3)
text_1970 = tk.Label(root, bg="turquoise")
text_1970.grid(column=2, row=3)
# - start -
root.mainloop()