#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 не выдает ошибок.