Как удалить кнопки на Tkinter?

#python #python-3.x #tkinter

#python #python-3.x #tkinter

Вопрос:

Мне действительно нужно иметь возможность удалять экранную кнопку в ярлык. Все, что мне нужно сделать, это удалить кнопку и поместить на ее место метку. Однако я не знаю, как удалить кнопки.

Я использую Windows 10, Python 3.9.2.

Комментарии:

1. Лучше опубликовать некоторый код, чтобы мы могли работать над чем-то, а не предполагать что-то.

2.К вашему сведению, a — Button это виджет.

3. @martineau Я не понимал, что такое виджет, когда я опубликовал это. Спасибо.

Ответ №1:

Вы ищете что-то подобное?:

 import tkinter as tk

def remove_button():
    global label
    # Get the grid parameters passed in button when it was created
    button_grid_info = button.grid_info()
    button.grid_forget()
    label = tk.Label(button_grid_info["in"], text="This is a Label widget")
    # Put the label exactly where the button was:
    label.grid(**button_grid_info)

root = tk.Tk()

button = tk.Button(root, text="Click me", command=remove_button)
button.grid(row=1, column=1)

root.mainloop()
 

grid_forget удаляет виджет, не уничтожая его. Если вы использовали <button>.pack , используйте pack_forget . Если вы использовали <button>.place , используйте place_forget .

Комментарии:

1. Я попробую это.

2. Если в случае OP кнопка не является последним виджетом в контейнере, то метка не будет помещена в ту же позицию кнопки.

3. @DaniyalWarraich попробуйте еще раз, я обновил свой ответ, чтобы использовать grid / grid_forget

4. @acw1668 Я это исправил. Теперь метка появится именно там, где была кнопка.

5. Нет. Кнопка не исчезает. Кроме того, Python не выдает ошибок.