【问题标题】:How to make text Button and text Label the same height in grid?如何使文本按钮和文本标签在网格中具有相同的高度?
【发布时间】:2019-06-10 10:58:22
【问题描述】:

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

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


    【解决方案1】:

    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)
    

    输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-16
      • 2015-09-24
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 2020-02-23
      • 2019-11-01
      相关资源
      最近更新 更多