HOWTO · Tkinter

如何设置 Tkinter 文本输入控件的高度和宽度

Tkinter Entry 文本输入框控件具有多种设置高度和宽度的方法,例如 Entry 控件中的 width 选项,place 方法中的 width 和 height 选项以及 pack 和 grid geometry 方法中的 ipadx / ipadx。

本页内容

Tkinter Entry 文本输入框控件是允许用户输入或显示单行文本的控件。因此,通常不需要设置 Entry 控件的高度。但是它有一些方法可以设置 Tkinter Entry 控件的高度和宽度。

  1. 在 Entry 控件中的 width 选项设置宽度
  2. place 方法中的 width 和 height 选项设置 Tkinter Entry 控件的宽度和高度
  3. pack 和 grid 方法中的 ipadx 和 ipady 选项来设置 Tkinter Entry 控件的宽度和高度。

Entry 文本输入框控件中的 width 选项来设置宽度

如果仅需要指定 Entry 控件的宽度,则 Entry 控件中的 width 选项可能是最简单的方法。

import tkinter as tk

app = tk.Tk()
app.geometry("400x200")

entryExample = tk.Entry(app, width=10)

entryExample.pack(side=tk.LEFT, padx=10)

app.mainloop()

Tkinter Entry 文本输入框宽度选项

Tkinter Entry 文本输入框控件中的 width 选项的单位是文本单位,而不是像素。宽度中的一个文本单位等于系统字体中 0 的宽度。这就是为什么当 width 设置为 10 时,它在上图中可以显示 10 个零的原因。

place 布局方法中的 width 和 height 选项来设置 Tkinter Entry 控件的 width 和 height

place 布局方法中的 width 和 height 在窗口中设置控件的宽度和高度像素单位。

import tkinter as tk

app = tk.Tk()
app.geometry("400x200")

entryExample = tk.Entry(app)
entryExample.place(x=10, y=10, width=200, height=100)

app.mainloop()

Tkinter Entry_width 和高度选项在放置方法中

pack 和 grid 布局方法中的 ipadx 和 ipady 选项设置 Tkinter Entry 文本输入框控件的宽度和高度

ipadx 和 ipady 在水平和垂直方向上设置内部填充。它可以间接设置 Tkinter Entry 控件的宽度和高度。

使用 grid 方法的 Tkinter Entry 控件布局如下,

Tkinter Entry_Width 和网格中的高度方法

Tkinter Entry 的实际宽度是 2*ipadx + 默认 Entry 宽度,类似地,Entry 的实际宽度是 2*ipady + 默认 Entry 高度。

import tkinter as tk

app = tk.Tk()

entryExample1 = tk.Entry(app)
entryExample2 = tk.Entry(app)

entryExample1.grid(row=0, column=0, padx=10, pady=10, ipady=30)

entryExample2.grid(row=1, column=0, padx=10, pady=10, ipadx=20, ipady=30)

app.geometry("200x200")

app.mainloop()

Tkinter Entry_ipadx 网格方法

如上所示,由于 entryExample2 的 ipadx 为 20,而 entryExample1 的 ipadx 默认为 0,因此,entryExample2 的宽度比 entryExample1 宽 40 个像素。

我们可以类似地设置 ipady 来更改 Tkinter Entry 控件的宽度。

import tkinter as tk

app = tk.Tk()

entryExample1 = tk.Entry(app)
entryExample2 = tk.Entry(app)

entryExample1.grid(row=0, column=0, padx=10, pady=10, ipady=50)

entryExample2.grid(row=0, column=1, padx=10, pady=10, ipady=60)

app.geometry("300x200")

app.mainloop()

Tkinter Entry_ipady 中的 grid 方法