如何为 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
表示将新字符串放在条目小部件的末尾。如果那里没有字符串,则指定0
或END
都没有关系。
@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 条目小部件设置默认文本的主要内容,如果未能解决你的问题,请参考以下文章