首页 > 解决方案 > 如果缺少所需信息,锁定 tk 按钮

问题描述

我目前正在创建一个 GUI,如果尚未输入诸如电子邮件地址之类的信息,我想锁定一个“继续”按钮。感谢任何试图提供帮助的人:)

标签: pythonuser-interfacetkinterbutton

解决方案


为每个输入字段的 StringVars 使用 .trace()。当用户开始输入输入字段时,您可以调用函数。

这是一个例子:

import tkinter as tk

root = tk.Tk()
root.geometry("200x150")

def update(*args):
    if name_var.get() == '' or email_var.get() == '':
        cont['state'] = tk.DISABLED
    else:
        cont['state'] = tk.NORMAL

name_lbl = tk.Label(root, text="Name:").pack()
name_var = tk.StringVar(root)
name_var.trace("w", update)
name = tk.Entry(root, textvariable=name_var).pack()

email_lbl = tk.Label(root, text="Email:").pack()
email_var = tk.StringVar(root)
email_var.trace("w", update)
email = tk.Entry(root, textvariable=email_var).pack()

cont = tk.Button(root, state=tk.DISABLED, text="Continue")
cont.pack(side=tk.BOTTOM)

root.mainloop()

推荐阅读