Удаление radiobutton в tkinter

Пайтон tkinter - программа экзаменационный тест. Есть группа радиокнопок которым соответствуют label с вариантами ответов взятых из базы данных. Вариантов может быть два, три, четыре или пять. При переходе от вопроса к вопросу количество визуальных label в окне программы меняется,а количество радиокнопок остается неизменным.Просто destroy не решает проблему. В следующем вопросе удаленная ранее радиокнопка не появляется. Можно ли как то решить?


Ответы (1 шт):

Автор решения: Fox Fox

Простенький школьный пример использования destroy() в отношении каких-либо виджетов формы, ввиду отсутствия внятного условия (например, зачем вообще вспоминать в нём о радиокнопках). В форме три радиокнопки и три кнопки для их удаления:

import tkinter as tk
from tkinter import messagebox
    
root = tk.Tk()
root.title("Удаление радиокнопок в форме")
    
v = tk.IntVar()
rb = {i: tk.Radiobutton(root, text = i, variable = v, value = i) for i in (1, 2, 3)}
for r, w in rb.items(): w.grid(row = r - 1, column = 0, sticky = 'w')
    
for c in (0, 1, 2):
    n = c + 1
    tk.Button(root, text = f"Удалить радиокнопку {n}",
    command = lambda n = n: rb[n].destroy()
    if rb[n].winfo_exists()
    else messagebox.showerror("Ошибка", f"Радиокнопка {n} уже была удалена!")).grid(row = 3, column = c)
    
root.mainloop()
→ Ссылка