Вот простое приложение, которое демонстрирует активацию или отключение кнопки в зависимости от того, является ли текст метки пустой строкой или нет:
import tkinter as tk
class App(tk.Tk):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.lb = tk.Label(self)
self.lb.pack()
self.entry = tk.Entry(self)
self.entry.pack()
self.button = tk.Button(self, text="A button", command=lambda: print("Button pressed"))
self.button["state"] = tk.DISABLED
self.button.pack()
self.bind("<Return>", self.enter_pressed)
def enter_pressed(self, event):
self.lb.config(text=self.entry.get())
self.button["state"] = tk.NORMAL if self.lb["text"] else tk.DISABLED
app = App()
app.mainloop()
Окно содержит метку, затем поле ввода текста, затем кнопку. Если вы вводите текст в поле ввода текста, а затем нажимаете клавишу ввода (клавиша возврата), текст метки устанавливается равным тексту в текстовом поле, а кнопка устанавливается в состояние «включено» или «отключено» в зависимости от того, является ли текст метки пустым. или нет.
Ключевая строка здесь:
self.button["state"] = tk.NORMAL if self.lb["text"] else tk.DISABLED
Это устанавливает состояние кнопки либо на tk.NORMAL
(включено), либо на tk.DISABLED
в зависимости от того, используется ли текст метки (self.lb["text"]
) пустая строка или нет.