如何在现有小部件下放置tkinter小部件?

问题描述 投票:1回答:2

我最近被介绍给了tkinter,我正在尝试编写一个计算器应用程序来熟悉它。输入的Entry小部件,我称之为“显示”似乎是将Button小部件推向右侧。我的问题与this question非常相似,但是所有答案都涉及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()
python tkinter
2个回答
1
投票

你只需要添加“columnspan = 4”作为参数来显示这样的网格

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

默认情况下,columnspan的值设置为1

其余的代码似乎没问题:)


1
投票

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

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()
© www.soinside.com 2019 - 2024. All rights reserved.