Tkinter Python的输入框高度

17

我正在制作一个简单的应用程序来练习Python,在其中我想写文本,就像使用记事本一样。但是,我无法使我的输入框变大。我正在使用tkinter进行开发。有人知道如何使输入框的高度变大吗?

我尝试了这样的代码:

f = Frame()
f.pack()
e = Entry(f,textvariable=1,height=20)
e.pack()

我知道这行不通,因为没有“height”属性。但是,我看到有一个宽度属性。


这回答解决了你的问题吗?如何以像素为单位设置Tkinter Entry小部件的宽度? - DaniyalAhmadSE
8个回答

31

看起来你需要的是tkinter.Text,它允许你调整小部件的高度和宽度。下面是一个简单的脚本来演示:

from tkinter import Text, Tk

r = Tk()
r.geometry("400x400")

t = Text(r, height=20, width=40)
t.pack()

r.mainloop()

17

另一种方法是通过在pack方法中添加此内容来增加内部填充:

...
e = Entry(f,textvariable=1,height=20)
e.pack(ipady=3)
...
例如。这对我的“Entry”有效,对.grid()也有效。

3
这应该是对这个问题的答案。被接受的答案(即@iCodez的答案)是一种可选方案。 - Sun Bear
@SunBear。我不同意,重新阅读问题而不是代码片段。 - onxx
tk.Entry() 没有可设置的 height 参数。 - Amir Charkhi
谢谢!这其实不是对这个问题的答案,但它确实回答了我遇到的问题。 :) - Tea

7

实际上很简单。您不需要在Entry()中设置height,而是在place()中设置。
例如:

from tkinter import Entry, Tk

window = Tk()
t = Entry(window)
t.place(width=150,height=50)

window.mainloop()

5
from tkinter import *

root=Tk()

url = Label(root,text="Enter Url")
url.grid(row=0,padx=10,pady=10)

entry_url = Entry(root,width="50")
entry_url.grid(row=0,column=1,padx=5,pady=10,ipady=3)

root.geometry("600x300+150+150")

root.mainloop()

查看更多请关注 GitHub

输出图像 这是上述代码的输出


1
这并没有回答问题,也没有创建类似于记事本的体验,您可以输入多行文本并使用回车键。您的解决方案更改了 tk.entry 的外观,它是单行的,用于用户输入。OP 需要一个文本编辑器体验的解决方案。 - onxx

3

您可以通过更改字体大小来改变它:

Entry(
root,
font=("default", 40 or 20 whatever )

)

与其输入"default",我相信你可以直接使用None(不用引号)。 - WinEunuuchs2Unix

3
为了改变一个输入框(widget)的大小,你需要把它的字体(font)变成大号字体(larger font)。
下面是我的代码:
import tkinter as tk

large_font = ('Verdana',30)
small_font = ('Verdana',10)

root = tk.Tk()

entry1Var = tk.StringVar(value='Large Font!')
entry1 = tk.Entry(root,textvariable=entry1Var,font=large_font)
entry1.pack()    

entry2Var = tk.StringVar(value='Small Font!')
entry2 = tk.Entry(root,textvariable=entry2Var,font=small_font)
entry2.pack()

root.mainloop()

0
通过使用.place(width= , height= )方法,您可以调整输入框的大小。另一种方法是更改文本的字体,但这会限制您更改字体的能力。
.place()方法:
textbox.place(width= (Your desired width) ,height= (Your desired height))

字体方法:

textbox = Entry(root, font=("default", (Your font size))

希望这能帮到你!


0
您可以更改录入小部件的高度。 要这样做,您可以编写:
entry_box.place(height=40, width=100)

根据您的需求更改该值!IT WORKS!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接