tkinter -当用户开始在输入字段内输入时,如何使按钮状态从禁用状态变为“正常”?

皮纳基米什拉

我正在使用 tkinter 来构建 GUI。我有两个字段,一个用于接受用户输入的条目字段,另一个是提交按钮。我的意图是当 GUI 调用提交按钮时应该处于禁用状态,这是我通过将按钮的状态设置为“禁用”来实现的。

self.submit = ttk.Button(self, text='Submit', state = 'disabled')

因此,当用户开始在输入字段中输入时,提交按钮状态应更改为“正常”。写在下面的函数:

def enable_responseButton(self):

        self.user_input.bind("<Key>",self.respond.config(state='normal',command = self.get_response))

并在输入字段中将函数作为命令传递,如下所示:

self.input = ttk.Entry(self,state = "normal",command = self.enable_responseButton)

但是,当我运行我的脚本时,即使用户没有输入任何值,GUI 也会打开并且默认启用提交按钮状态。有什么方法需要等待用户输入,然后按钮才会处于禁用状态?

您可以使用 Variable 类对象与条目的文本同步,只要条目为空,按钮就会被禁用,而在下面的示例中没有时则启用:

try:
    import tkinter as tk
except ImportError:
    import Tkinter as tk


def toggle_state(*_):
    if entry.var.get():
        button['state'] = 'normal'
    else:
        button['state'] = 'disabled'


if __name__ == '__main__':
    root = tk.Tk()
    entry = tk.Entry(root)
    entry.var = tk.StringVar()
    entry['textvariable'] = entry.var
    entry.var.trace_add('write', toggle_state)
    button = tk.Button(root, text="Button", state='disabled')
    entry.pack()
    button.pack()
    tk.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章