【问题标题】:Removing input when pressing button in Tkinter using python [duplicate]使用python在Tkinter中按下按钮时删除输入[重复]
【发布时间】:2021-02-14 07:49:24
【问题描述】:

第一次使用 Tkinter,我正在尝试制作一个简单的消息系统。用户输入他们的信息和姓名,然后按下按钮“发送”。我想清除按下按钮的输入框。这是我的代码:

import tkinter
    
window = tkinter.Tk()
window.geometry("400x200")

window.title("NS Twitter")

label = tkinter.Label(window, text = "Welcome!").pack()

label = tkinter.Label(window, text = "Leave a message.").pack()

message = tkinter.Entry(window).pack()

label = tkinter.Label(window, text = "Put in your name.").pack()

name = tkinter.Entry(window).pack()

button = tkinter.Button(window, text = "Send.").pack()

window.mainloop()

问题:如何清除按下按钮的输入框?

【问题讨论】:

    标签: python button tkinter


    【解决方案1】:
    1. 因此,首先要“正确”声明您的小部件。
    label1 = tkinter.Label(window, text = "Welcome!")
    label1.pack()
    
    label2 = tkinter.Label(window, text = "Leave a message.")
    label2.pack()
    
    message = tkinter.Entry(window)
    message.pack()
    
    label3 = tkinter.Label(window, text = "Put in your name.")
    label3.pack()
    
    name = tkinter.Entry(window)
    name.pack()
    
    button1 = tkinter.Button(window, text = "Send.")
    button1.pack()
    

    它的作用是允许您配置或稍后使用条目小部件。否则,您的变量将返回None 作为pack() 返回的结果。为了更好地理解,请查看here。另请注意,我将所有变量名称更改为唯一名称以避免重复。

    1. 现在将command(关键字参数)添加到您的按钮:
    button1 = tkinter.Button(window, text = "Send.",command=clear)
    
    1. 现在定义函数clear()
    def clear():
        name.delete(0,'end')
        message.delete(0,'end')
    

    在这里,delete(0,'end) 将删除相应条目小部件的0 索引和end 之间的所有内容。另请注意,您不会说command=clear(),因为这将直接调用(调用)函数。

    另外请注意,说tkinter.Label()tkinter.Entry() 有时会让人厌烦,所以我建议将你的导入语句更改为import tkinter as tk,所以现在你只需要说tk.Label()tk.Entry()其他较长的。

    所以你的最终代码是:

    import tkinter as tk
    
    window = tk.Tk()
    
    def clear():
        name.delete(0,'end')
        message.delete(0,'end')
    
    label1 = tk.Label(window, text = "Welcome!")
    label1.pack()
    
    label2 = tk.Label(window, text = "Leave a message.")
    label2.pack()
    
    message = tk.Entry(window)
    message.pack()
    
    label3 = tk.Label(window, text = "Put in your name.")
    label3.pack()
    
    name = tk.Entry(window)
    name.pack()
    
    button1 = tk.Button(window, text = "Send.",command=clear)
    button1.pack()
    
    window.mainloop()
    

    所有这些只是建议,因为您刚刚开始使用 tkinter,一开始就拥有正确和更好的知识很重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2018-07-24
      • 1970-01-01
      • 2020-07-06
      • 2021-11-18
      • 2021-05-17
      • 1970-01-01
      相关资源
      最近更新 更多