我正在使用 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] 删除。
我来说两句