Валерий Шумилин
Знаток
(345)
4 дня назад
import tkinter as tk
def sub(buttons):
for button in buttons:
button.pack_forget()
# Создаем кнопки и возвращаем их
btn1 = tk.Button(root, text=str("русский язык"))
btn1.pack()
btn2 = tk.Button(root, text=str("математика"))
btn2.pack()
btn3 = tk.Button(root, text=str("информатика"))
btn3.pack()
# Возвращаем список новых кнопок
return [btn1, btn2, btn3]
def rus(buttons):
# Здесь btn1 не является глобальной переменной, поэтому код корректный
for button in buttons:
if button != buttons [0] : ["русский язык"](# Сравниваем с кнопкой) , чтобы она не удалялась
button.pack_forget()
btn11 = tk.Button(root, text=str("виды подчинительной связи слов в словосочетании"))
btn11.pack()
buttons.append(btn11)
btn22 = tk.Button(root, text=str("типы сказуемых"))
btn22.pack()
buttons.append(btn22)
root = tk.Tk()
root.geometry("500x400")
root.title("Button Click")
buttons = []
button = tk.Button(root, text=str("8 класс"), command=lambda: sub(buttons)) # Изменения здесь
button.pack()
buttons.append(button)
# Кнопка русского языка. Привязывается к первой кнопке, которая вернётся из sub
btn1 = None # Изначально не определена
def after_sub(returned_buttons):
global btn1
btn1 = returned_buttons[0]
btn1.config(command=lambda: rus(returned_buttons))
button.config(command = lambda: after_sub(sub(buttons)))
root.mainloop()
def sub(buttons):
for button in buttons:
button.pack_forget()
btn1 = tk.Button(root, text=str("русский язык"))
btn1.pack()
buttons.append(btn1)
btn2 = tk.Button(root, text=str("математика"))
btn2.pack()
buttons.append(btn2)
btn3 = tk.Button(root, text=str("информатика"))
btn3.pack()
buttons.append(btn3)
def rus(buttons):
for button in buttons:
if button != btn1:
button.pack_forget()
btn11 = tk.Button(root, text=str("виды подчинительной связи слов в словосочетании"))
btn11.pack()
buttons.append(btn11)
btn22 = tk.Button(root, text=str("типы сказуемых"))
btn22.pack()
buttons.append(btn22)
root = tk.Tk ()
root.geometry("500x400")
root.title("Button Click")
buttons = []
button = tk.Button(root, text=str("8 класс"), command=lambda: sub(buttons))
btn1 = tk.Button(root, command=lambda: rus(buttons))
button.pack()
buttons.append(button)
root.mainloop()
При нажатии на btn1 ничего не происходит, помогите пожалуйста