首页 > 解决方案 > 如何删除嵌入在窗口中的按钮?(Tkinter)

问题描述

我为游戏创建了一个播放按钮,当我们单击它时我想将其删除。

但是,我将它放在带有 canvas.create_window 的窗口中,因此我无法使用“pack_forget”将其删除。

你知道如何删除它吗?

bouton_play=PhotoImage(file="bouton_play.gif")
Jouer=Button(fenetre,image=bouton_play,relief=FLAT,borderwidth=0,highlightthickness=0,command=debut)
canvas.create_window(144,450,window=Jouer)

标签: python-3.xbuttontkintertkinter-canvas

解决方案


在画布中插入按钮后,必须将其视为画布元素,并使用canvas.delete(tag_or_id)而不是widget.geometry_manager_forget()

import tkinter as tk

def debut():
    print('debut')
    canvas.delete(btnw)  # <-- this removes the window containing the button

root = tk.Tk()
canvas = tk.Canvas(root, width=500, height=500)
canvas.pack()
btn = Button(root, text='jouer', command=debut)
btnw = canvas.create_window(200, 200, window=btn)  # <- this is the canvas element to delete from the canvas 

root.mainloop()

推荐阅读