相同的逻辑,但这是创建计算器的示例。只显示,不计算。这里我使用了 grid() 而不是 pack()。
import tkinter
main_window = tkinter.Tk()
main_window.title("Calculator")
main_window.geometry('500x500+550+200')
main_window['padx'] = 8
main_window.columnconfigure(0, weight=1)
main_window.columnconfigure(1, weight=1)
main_window.columnconfigure(2, weight=1)
main_window.columnconfigure(3, weight=1)
main_window.columnconfigure(4, weight=1)
main_window.columnconfigure(5, weight=1)
main_window.rowconfigure(0, weight=1)
main_window.rowconfigure(1, weight=1)
main_window.rowconfigure(2, weight=1)
main_window.rowconfigure(3, weight=1)
main_window.rowconfigure(4, weight=1)
main_window.rowconfigure(5, weight=1)
main_window.rowconfigure(6, weight=1)
main_window.rowconfigure(7, weight=1)
title_label = tkinter.Label(main_window, text="Calculator")
title_label.grid(row=0, columnspan=6)
number_entry = tkinter.Entry(main_window)
number_entry.grid(row=1, columnspan=4, sticky='nwes')
button_list = [('C', 'E'),
('7', '8', '9', '+'),
('4', '5', '6', '-'),
('1', '2', '3', '*'),
('0', '=', '/')]
for outer_num, outer_val in enumerate(button_list):
for inner_num, inner_val in enumerate(outer_val):
x = 1
y = inner_num
if inner_val == "=":
x = 2
if inner_val == "/":
y += 1
tkinter.Button(main_window, text=inner_val).grid(row=outer_num + 2, column=y, columnspan=x,
sticky='news')
main_window.mainloop()