Tkinter Python删除垂直空间

时间:2017-10-10 08:52:41

标签: python user-interface text tkinter

import tkinter as tk

root = tk.Tk()

buttonOK = tk.Button(root, text='B1')
MCC = tk.Button(root, text='B2')
TID = tk.Button(root, text='B3')
CURRENCY = tk.Button(root, text='B4')
COUNTRY = tk.Button(root, text='B5')
RESPONSE = tk.Button(root, text='B6')


B1.grid(row=3, column=0, sticky=tk.E+tk.W)
B2.grid(row=3, column=1, sticky=tk.E+tk.W)
B3.grid(row=3, column=2, sticky=tk.E+tk.W)
B4.grid(row=4, column=0, sticky=tk.E+tk.W)
B5.grid(row=4, column=1, sticky=tk.E+tk.W)
B6.grid(row=4, column=2, sticky=tk.E+tk.W)

label1 = tk.Entry(root, bd =8)
label1.grid(row=2, column=0, rowspan=1, columnspan=3, sticky=tk.E+tk.W)

label=tk.Text(root,background="yellow")
label.insert(index=0.0, chars="Enter values below\nand click search.\n") 
label.grid(row=0, column=0,rowspan=1, columnspan=3, sticky=tk.E+tk.W)

root.mainloop()

我正在尝试使用Tkinter在Python中构建GUI,但插入的文本标签的空间为"在\ n下面输入值,然后单击搜索。\ n"占据大约6个空白行。请帮我把它删除。我使用上面代码的当前结果是左边的,我希望有一个正确的图像。

enter image description here

2 个答案:

答案 0 :(得分:4)

创建文本小部件时,请指定要显示的行数,例如:

label=tk.Text(root,background="yellow", height=3)

未指定意味着它将默认为24,因此它在你的程序中如此之大。

答案 1 :(得分:0)

忽略代码中的grid()错误。

您可以通过提供重量和起始几何尺寸来纠正尺寸调整问题。

更新:

如果您为正确的行和列提供权重,则为“文本”窗口小部件提供默认高度3,并将“文本”窗口小部件上的grid()告诉sticky="nsew",您可以让程序开始大小如果你愿意,你想要并且能够均匀地调整大小。

看看下面的代码:

import tkinter as tk

root = tk.Tk()

# we want all 3 columns to resize evenly for the buttons so we provide
# a weight of 1 to each. We also want the first row where the text box is
# to resize so there is not unwanted behavior when resizing, so we set its weight to 1.
# keep in mind a weight of zero (default) will tell tkinter to not resize that row or column.
root.columnconfigure(0, weight=1)
root.columnconfigure(1, weight=1)
root.columnconfigure(2, weight=1)
root.rowconfigure(0, weight=1)

buttonOK = tk.Button(root, text='B1')
MCC = tk.Button(root, text='B2')
TID = tk.Button(root, text='B3')
CURRENCY = tk.Button(root, text='B4')
COUNTRY = tk.Button(root, text='B5')
RESPONSE = tk.Button(root, text='B6')
# corrected the variables being assigned a grid location
buttonOK.grid(row=3, column=0, sticky=tk.E+tk.W)
MCC.grid(row=3, column=1, sticky=tk.E+tk.W)
TID.grid(row=3, column=2, sticky=tk.E+tk.W)
CURRENCY.grid(row=4, column=0, sticky=tk.E+tk.W)
COUNTRY.grid(row=4, column=1, sticky=tk.E+tk.W)
RESPONSE.grid(row=4, column=2, sticky=tk.E+tk.W)

label1 = tk.Entry(root, bd =8)
label1.grid(row=2, column=0, rowspan=1, columnspan=3, sticky=tk.E+tk.W)
# added a height of 3 to the Text widget. to reduce its starting height
label=tk.Text(root,background="yellow", height=3)
label.insert(index=0.0, chars="Enter values below\nand click search.\n") 
# added stick="nsew" so the text box will resize with the available space in the window.
label.grid(row=0, column=0,rowspan=1, columnspan=3, sticky="nsew")

root.mainloop()