首页 > 解决方案 > 如何使文本按钮和文本标签在网格中具有相同的高度?

问题描述

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

我尝试在制作标签和按钮时修改高度选项,但是尽管两者的字体大小相同,并且两者的高度都由“文本单位”确定,但将两者的 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()

对此的任何帮助将不胜感激。

标签: python-3.xtkinter

解决方案


使用粘性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)

输出:

在此处输入图像描述


推荐阅读