如何使文本Button和文本Label在网格中具有相同的高度?

时间:2019-06-10 10:58:22

标签: python-3.x tkinter

我第一次使用Tkinter制作了一个非常简单的GUI应用程序。我遇到的问题是,当使用grid()并排使用文本标签和文本按钮时,当我希望它们相同时,按钮的高度超过了标签的高度。

我尝试在制作“标签”和“按钮”时修改height选项,但是尽管两者的字体大小相同,并且两者的高度都由“文本单位”确定,但在两种情况下都将height设置为1两个不同的高度。我也尝试过修改按钮的pady选项,但这也不能解决问题。

以下是重现该问题的一些代码:

import tkinter as tk
from tkinter import font

root = tk.Tk()

# making font larger for easier viewing 
default_font = tk.font.nametofont("TkDefaultFont")
default_font.configure(size = 44)

# make a text Label and text Button, both with height 1... results in 2 different heights
tk.Label(root, text="foo", bg = 'black', fg = 'white', relief = 'raised', height = 1).grid(row=0,column=0)
tk.Button(root, text="bar", bg = 'red', fg = 'black', relief = 'raised', height = 1).grid(row=0,column=1)

root.mainloop()

任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用widget.grid( grid_options )中的粘性选项

  

粘性

     

如果单元格大于小部件,该怎么办。默认情况下,   sticky ='',小部件位于其单元格的中心。粘性可能是字符串   N,E,S,W,NE,NW,SE和SW中零个或多个的串联,   指南针方向,指示单元格的侧面和角落   哪个小部件会粘住。

tk.Label(root, text="foo", bg = 'black', fg = 'white', relief = 'raised', height = 1).grid(row=0,column=0, sticky= W+E+N+S)

输出:

enter image description here