如何设置 Tkinter 文本输入控件的高度和宽度
-
Entry
文本输入框控件中的width
选项来设置宽度 -
place
布局方法中的width
和height
选项来设置 TkinterEntry
控件的width
和height
-
pack
和grid
布局方法中的ipadx
和ipady
选项设置 TkinterEntry
文本输入框控件的宽度和高度
Tkinter Entry
文本输入框控件是允许用户输入或显示单行文本的控件。因此,通常不需要设置 Entry
控件的高度。但是它有一些方法可以设置 Tkinter Entry
控件的高度和宽度。
- 在
Entry
控件中的width
选项设置宽度 place
方法中的width
和height
选项设置 TkinterEntry
控件的宽度和高度pack
和grid
方法中的ipadx
和ipady
选项来设置 TkinterEntry
控件的宽度和高度。
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
文本输入框控件中的 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()
pack
和 grid
布局方法中的 ipadx
和 ipady
选项设置 Tkinter Entry
文本输入框控件的宽度和高度
ipadx
和 ipady
在水平和垂直方向上设置内部填充。它可以间接设置 Tkinter Entry
控件的宽度和高度。
使用 grid
方法的 Tkinter Entry
控件布局如下,
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()
如上所示,由于 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()
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn