如何为 Tkinter 条目小部件设置默认文本

Posted

技术标签:

【中文标题】如何为 Tkinter 条目小部件设置默认文本【英文标题】:How to set default text for a Tkinter Entry widget 【发布时间】:2013-12-06 05:14:00 【问题描述】:

如何在构造函数中为 Tkinter Entry 小部件设置默认文本?我检查了文档,但我没有看到类似 "string=" 的选项要在构造函数中设置?

对于使用表格和列表有一个类似的答案,但这是一个简单的 Entry 小部件。

【问题讨论】:

【参考方案1】:

使用Entry.insert。例如:

try:
    from tkinter import *  # Python 3.x
except Import Error:
    from Tkinter import *  # Python 2.x

root = Tk()
e = Entry(root)
e.insert(END, 'default text')
e.pack()
root.mainloop()

或者使用textvariable选项:

try:
    from tkinter import *  # Python 3.x
except Import Error:
    from Tkinter import *  # Python 2.x

root = Tk()
v = StringVar(root, value='default text')
e = Entry(root, textvariable=v)
e.pack()
root.mainloop()

【讨论】:

e.insert中END的意义是什么? @sky_bird, END 表示将新字符串放在条目小部件的末尾。如果那里没有字符串,则指定0END 都没有关系。 @meatspace,我让代码在 Python 2.x / Python 3.x 中运行。 老实说,Tkinter 开发人员不允许使用 e = Entry(root, text='default text') 构造函数确实不一致,因为他们已经使用 Label 等。 @AnatolyAlekseev 我同意。我注意到 Tkinter 以人为的、不直观的方式做了很多简单的事情,通常似乎主要针对某些类型的用例,而且通常这是做这件事的唯一方法。【参考方案2】:

对我来说,

Entry.insert(END, 'your text')

没用。

我使用了Entry.insert(-1, 'your text')

谢谢。

【讨论】:

如果你这样做了,例如import tkinter as tk 那么你将使用tk.END。如果您使用from tkinter import *,那么只需END 就可以了。

以上是关于如何为 Tkinter 条目小部件设置默认文本的主要内容,如果未能解决你的问题,请参考以下文章

如何为文本小部件设置字符的最大宽度?

如何将捕获的输入从 tkinter 条目小部件写入 json 文件

更改 tkinter 文本小部件中的默认输入语言

如何使用 tkinter 创建多行条目?

tkinter - 如何为文本设置字体?

如何将文件位置存储到条目窗口小部件中--Tkinter