如何在tkinter中创建清晰的条目文本并显示在窗口上

时间:2015-12-16 06:17:59

标签: python-3.x tkinter

我在完成一个程序时遇到了麻烦,我需要一些帮助。我必须清除Entry文本区域,以便在单击“保存”按钮时从头开始重新输入。此外,如果可以帮助我将一种方式显示Entry文本数据到窗口显示中,那将是很好的,但是现在,我主要需要弄清楚如何清除输入文本区域。 这是当前的程序,它看起来很糟糕,但它的工作原理。 此外,是否可以创建一个函数定义,以便在脚本完成后使窗口清晰?谢谢

from tkinter import *

#this function will save the data from tkinter to .txt file.

    def save_data():
        fileD = open("names.txt", "a")
        fileD.write("Name_List:\n")
        fileD.write("%s\n" % name.get())




    #this section will create GUI widget window containing lable, Entry and buttons here.
    app = Tk()
    app.title('Name Library')
    Label(app, text = "Please Enter Name Here:", fg="black").pack()
    name = Entry(app)
    name.pack()
    Label(app, text="New Name will Display Here if Name Changed: ", fg="gold").pack()
    Button(app, text = "Save", fg="red", command = save_data).pack()
    app.configure(background="green")
    app.mainloop()

1 个答案:

答案 0 :(得分:2)

要清除您的输入,请使用.delete(0, END)

name = Entry(root)
name.delete(0, END) # clear the entry field

对于条目小部件,第一个字符从0开始。您可以使用'end'END删除条目小部件的最后一个字符,也可以使用设置值。

请查看此guide以了解您的tkinter neeeds。

示例代码:

import tkinter as tk
import os

def save_data():
    text = name.get().strip()
    if text: # checks for empty entries
        f = open('names.txt', 'a')
        f.write(text + '\n')
        f.close()
        name.delete(0, tk.END)

# Checks if the file exists
# if not then create it and
# write the header 'Name List'
if not os.path.exists('names.txt'):
    f = open('names.txt', 'w')
    f.write('Name_List:\n')
    f.close()

root = tk.Tk()

tk.Label(root, text = "Please Enter Name Here:").pack()

name = tk.Entry(root)
name.pack()

tk.Button(root, text = 'Save', command = save_data).pack()

root.mainloop()