Python 3.4 tkinter按钮

2024-05-16 11:16:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我的程序应该销毁btn1,并在循环中一秒钟后再次创建它。我不知道为什么,但我的程序只销毁btn1,不再显示这个。有人知道为什么吗?在

from tkinter import *
import random

def hide():
    btn1.destroy()
    btn1.after(2000,hide)

def show():
    btn1 = Button(root, bd=c, text="Hello\nWorld", relief="ridge", cursor="trek")
    btn1.grid(row=0,column=0)
    btn1.after(3000,show)

root = Tk()

root.geometry("350x150+400+400")

c=random.randint(20,40)

btn1 = Button(root, bd=c, text="Hello\nWorld", relief="ridge", cursor="trek")
btn1.grid(row=0,column=0)

btn1.after(2000,hide)
btn1.after(3000,show)

root.mainloop() 

Tags: textimport程序hellodefshowbuttonrandom
1条回答
网友
1楼 · 发布于 2024-05-16 11:16:46

如果每次都使用grid\u-forget而不是创建一个新对象,它就可以工作了。请注意,在6秒(2000 X 3000)的倍数下发生的情况取决于最后执行哪一个。在

def hide():
    btn1.grid_forget()
    btn1.after(2000,hide)

def show():
    btn1.grid(row=0,column=0)
    btn1.after(3000,show)

root = Tk()

root.geometry("350x150+400+400")

c=random.randint(20,40)

btn1 = Button(root, bd=c, text="Hello\nWorld",
              relief="ridge", cursor="trek")
btn1.grid(row=0,column=0)

btn1.after(2000,hide)
btn1.after(3000,show)

root.mainloop()

相关问题 更多 >