[英]How to delete an entry when I press a Button in Python Tkinter in a class
我是初学者。 我可以请你帮忙吗?
如何清除 Python tkinter 中的条目。 我无法清除它。 我尝试了诸如 END 和 'END' 之类的参数,但是当我按下按钮时我无法清除条目
能不能尽快答复谢谢。 我现在在一个项目中工作
这是我的代码:
from tkinter import *
class TkinScreen:
def main_screen_opening(self):
self.screen = Tk()
self.screen.geometry ('500x500')
self.screen.title ('Rwooggle Account')
my_heading1 = Label (text = 'Rwooggle.com', bg = 'blue', fg = 'yellow', font = ('Courier', 34, 'italic'), width = '500').pack()
my_heading = Label (text = 'Login', bg = 'blue', fg = 'black', font = ('Courier', 24, 'bold'), width = '500').pack()
def variables(self):
self.username_var = StringVar()
self.password_var = StringVar()
self.age_var = IntVar()
self.city_var = StringVar()
def labels_entries(self):
self.username_text = Label (text = 'Username*', font = ('Courier', 18)).pack()
self.username_entry = Entry (textvariable = self.username_var, width = '30').pack()
Label (text = "", width = '30').pack()
self.password_text = Label (text = 'Password*', font = ('Courier', 18)).pack()
self.password_entry = Entry (textvariable = self.password_var, width = '30').pack()
Label (text = "", width = '30').pack()
self.age_text = Label (text = 'Age', font = ('Courier', 18)).pack()
self.age_entry = Entry (textvariable = self.age_var, width = '30').pack()
Label (text = "", width = '30').pack()
self.city_text = Label (text = 'Country', font = ('Courier', 18)).pack()
self.city_entry = Entry (textvariable = self.city_var, width = '30').pack()
Label (text = "", width = '30').pack()
def button(self):
log_in_but = Button (text = 'Log In', font = ('Courier', 20), command = self.button_command).pack()
def button_command(self):
print ('User Sucessfully Logged In')
self.user_info = self.username_var.get()
self.pass_info = self.password_var.get()
self.pass_print = '*' * (len(self.pass_info))
self.age_info = self.age_var.get()
self.city_info = self.city_var.get().capitalize()
txt_info = f"""\
Username : {self.user_info}
Password : {self.pass_print}
Age : {self.age_info}
Country : {self.city_info}
"""
print (txt_info)
self.username_entry.delete(0, 'end')
self.password_entry.delete(0, 'end')
self.age_entry.delete(0, 'end')
self.city_entry.delete(0, 'end')
def function(self):
self.screen.mainloop()
tkint = TkinScreen ()
tkint.main_screen_opening()
tkint.variables()
tkint.labels_entries()
tkint.button()
tkint.function()
这是错误用户成功登录用户名:FFNNFD 密码:****** 年龄:12 国家:Eggreg
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Roger Geronimo\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\Roger Geronimo\Documents\Programming\SublimeText3\baf.py", line 53, in button_command
self.username_entry.delete(0, 'end')
AttributeError: 'NoneType' object has no attribute 'delete'
我也试过 END 参数
先感谢您
无论您想清除什么条目,请在单击按钮时调用的函数中使用entry.set('')
只是改变
self.username_entry = Entry (textvariable = self.username_var, width = '30').pack()
到
self.username_entry = Entry (textvariable = self.username_var, width = '30')
self.username_entry.pack()
我建议对所有输入框执行此操作,然后像往常一样继续操作,它将解决错误:D
解释:
这是因为self.username_entry = Entry (....).pack()
返回None
,即,当您使用self.username_entry.delete(0,'end')
您说的是Entry (....).pack().delete(0,'end')
就不存在,因为self.username_entry = Entry (....).pack()
是 None 他们给出错误,你收到了。
额外提示:
master
参数,例如Entry(root)
或者当您使用更多窗口时,它会造成严重破坏。messagebox
类的东西,而不是说print ('User Sucessfully Logged In')
。 这是如何如果您有任何疑问或错误,请告诉我
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.