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

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

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

【问题讨论】:

    标签: python python-3.x python-2.7 user-interface tkinter


    【解决方案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 就可以了。
    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多