打开顶层窗口时的灰显按钮

2024-06-01 08:05:41 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,我正在使用Tkinter Python,我有一个名称条目

如果输入的名称无效,则会在新窗口中出现错误。我希望在打开此错误时,原始窗口或按钮变灰,然后在关闭后恢复正常。这可能吗?我不希望该按钮被垃圾邮件和打开多个错误框

enter image description here


Tags: image名称heretkinter错误垃圾邮件条目description
1条回答
网友
1楼 · 发布于 2024-06-01 08:05:41

我将告诉你两种方法

我建议使用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()

相关问题 更多 >