嘿,我正在使用Tkinter Python,并且有一个名称条目。
如果输入的名称无效,则会在新窗口中显示错误。我希望在打开此错误时将原始窗口或按钮显示为灰色,然后在关闭后恢复到正常状态。这可能吗?我不希望该按钮被发送垃圾邮件并打开多个错误框。
答案 0 :(得分:0)
我会告诉你两种方法。
我建议使用tkinter.messagebox
向用户显示错误(或信息),因为它将禁用root
窗口,直到其保持打开状态。它会根据系统偏好设置播放声音,并允许按Enter键关闭弹出窗口
赞!:
import tkinter as tk
import tkinter.messagebox as msgb # use your preferred import style
def submit():
if e.get() == 'something': # check input here
doSomething()
else:
msgb.ShowError('Invalid input', 'seems like you entered incorrect name')
root = tk.Tk()
e = tk.Entry(root)
e.pack()
btn = tk.Button(root, text='Submit', command=submit)
btn.pack()
root.mainloop()
第二种方法:
如果您真的只需要使用“顶级”窗口并且必须将输入框(和/或按钮)涂成灰色-这就是方法
import tkinter as tk
def submit():
if e.get() == 'something': # check input here
doSomething()
else:
e.configure(state=tk.DISABLED)
btn.configure(state=tk.DISABLED)
newWindow = tk.Toplevel()
showSomethingHere()
root = tk.Tk()
e = tk.Entry(root)
btn = tk.Button(root, text='Submit', command=submit)
e.pack()
btn.pack()
root.mainloop()