如何在现有小部件下定位 tkinter 小部件?



我最近被介绍给tkinter,我正在尝试编写一个计算器应用程序来熟悉它。输入所在的Entry小部件,我称之为"显示",似乎将Button小部件推到右侧。我的问题与这个问题非常相似,但是那里的所有答案都涉及pack()方法,而我只是尝试将grid()方法用于我的布局。如何定位Button小部件,使它们直接位于Entry小部件下方,而不是被推到右侧?这是我的应用程序的当前代码:

import tkinter as tk
root = tk.Tk()
button = list()
numbers = ("789456123")
def create_number_buttons():
i = 0
for row in range(1, 4):
for column in range(1, 4):
button.append(tk.Button(root, text=numbers[i], padx=10, pady=10))
button[i].grid(row=row, column=column, padx=1, pady=1)
i += 1
display = tk.Entry(root, width=25)
display.grid(row=0, column=0)
create_number_buttons()
root.mainloop()

您只需添加"columnspan=4"作为参数即可显示如下所示的网格

display.grid(row=0, column=0, columnspan=4)

默认情况下,列跨度的值设置为 1

其余代码似乎还可以:)

您可以将columnspan关键字参数添加到显示的几何管理器中:

import tkinter as tk
root = tk.Tk()
button = list()
numbers = ("789456123")
def create_number_buttons():
i = 0
for row in range(1, 4):
for column in range(1, 4):
button.append(tk.Button(root, text=numbers[i], padx=10, pady=10))
button[i].grid(row=row, column=column, padx=1, pady=1)
i += 1
display = tk.Entry(root)
display.grid(row=0, column=0, columnspan=4)
create_number_buttons()
root.mainloop()

最新更新