Как убрать кнопку, встроенную в окно?(Tkinter) - PullRequest
0 голосов
/ 26 апреля 2019

Я создал кнопку воспроизведения для игры, и я хотел бы удалить ее, когда мы нажмем на нее.

Однако, у меня это есть в окне с 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)

Ответы [ 2 ]

2 голосов
/ 26 апреля 2019

После того, как вы вставили кнопку в холст, вы должны рассматривать ее как элемент холста и использовать 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()
0 голосов
/ 26 апреля 2019

Попробуйте следующий код. При нажатии на кнопку она должна исчезнуть.

import tkinter as Tk

def disappear():
    but.grid_forget()

root = Tk.Tk()

canvas = Tk.Canvas(root, bg = 'black', width = 500, height = 500)
canvas.grid(row = 0, column = 0)

frame = Tk.Frame(bg = 'red')
canvas.create_window(0, 0, window = frame, anchor = Tk.NW)

but = Tk.Button(frame, text = 'Disappear', command = disappear)
but.grid(row = 0, column = 0)

root.mainloop()

Надеюсь, это поможет.

...