Tkinter中的入口小部件导致的空白空间

时间:2020-10-28 03:26:56

标签: python python-3.x tkinter tkinter-entry

程序运行时,我在程序中使用的复选框在复选框2和3之间有很大的距离。

我发现这是由我的输入小部件引起的,因为当我将其注释掉时,复选框2和3之间的间隙消失了。由于复选框和条目小部件位于不同的行中,因此我不确定如何消除这种看不见的缝隙,因此,我使我相信这两个小部件之间不应存在干扰。

from tkinter import *
import tkinter as tk

master = tk.Tk()

tk.Label(master, text="First Name").grid(row=0)
Entry(master).grid(row=0, column=1)

var1 = IntVar()
var2 = IntVar()
var3 = IntVar()

Checkbutton(master, text="1", variable=var1).grid(row=2,column=0, sticky=W)
Checkbutton(master, text="2", variable=var2).grid(row=2, column=1, sticky=W)
Checkbutton(master, text="3", variable=var3).grid(row=2, column=2, sticky=W)

Button(master,text="QUIT",command=master.quit, fg="red").grid(row=3,column=1)

master.mainloop()

1 个答案:

答案 0 :(得分:2)

您可以将按钮放置在跨应用程序宽度的框架中。可以将条目调整为也跨越几列。

也许是这样的:

enter image description here

import tkinter as tk

master = tk.Tk()

tk.Label(master, text="First Name").grid(row=0)
tk.Entry(master).grid(row=0, column=1, columnspan=2)

var1 = tk.IntVar()
var2 = tk.IntVar()
var3 = tk.IntVar()


checkbtns = tk.Frame(master)
tk.Checkbutton(checkbtns, text="1", variable=var1, padx=10).pack(side=tk.LEFT, anchor=tk.W)
tk.Checkbutton(checkbtns, text="2", variable=var2, padx=10).pack(side=tk.LEFT, anchor=tk.W)
tk.Checkbutton(checkbtns, text="3", variable=var3, padx=10).pack(side=tk.LEFT, anchor=tk.W)
checkbtns.grid(row=2, column=0, columnspan=3)

tk.Button(master, text="QUIT", command=master.destroy, fg="red").grid(row=3, column=0, columnspan=3)

master.mainloop()