【发布时间】:2021-09-12 09:27:35
【问题描述】:
考虑以下代码:
from tkinter import *
root=Tk()
root.geometry('700x700')
frame=Frame(root)
frame.pack(fill=BOTH,expand=True)
def opencanvas():
canvas=Canvas(frame,bg='red')
canvas.place(x=50,y=50,height=300,width=300)
button2=Button(frame,text='exit',command=canvas.place_forget)
button2.place(x=5,y=10)
button1=Button(frame,text='open',command=opencanvas)
button1.place(x=5,y=10)
mainloop()
这个程序在 tkinter 窗口中打开一个框架,并在框架中打开一个“打开”按钮。当按下“打开”时,一个画布打开,一个名为“退出”的按钮出现在框架中打开按钮的同一位置。退出按钮隐藏画布。
单击“退出”按钮时,我想在执行其操作(即隐藏画布)后自动消失“退出”按钮。我应该怎么做?
我想在 opencanvas() 中插入一些命令,按钮在按下后立即消失。
nb:两个按钮应该放在同一个地方,并且具有相同的尺寸。
【问题讨论】:
-
为什么要隐藏画布而不是销毁它?另外,为什么不创建
canvas和button2全局变量并创建一个隐藏/销毁它们的新函数 -
因为我想反复使用画布。我只想在按钮执行操作后隐藏按钮。该函数在按钮显示之前删除按钮。
-
因此创建一个调用
canvas.place_forget()和button2.place_forget()的函数并将其设置为button2的命令。要使其工作,您需要同时创建canvas和button2全局变量。
标签: python-3.x tkinter button