[英]Destroy the Tkinter button after it is clicked
我正在嘗試在 Tkinter 上玩機會游戲。我試圖讓按鈕在單擊后消失。 這應該適用於所有按鈕 - 單擊按鈕后,用戶將不再可見。 這些按鈕位於我代碼的后半部分,來自Start()
function。
from tkinter import *
from tkinter import messagebox
import random
point = 0
def showerror():
messagebox.showerror("Loser","Next time :)")
messagebox.showinfo("Your point", "Point: " + str(point))
def addpoint():
global point
point += 31
def deleteButton():
pass
def test():
r = random.randint(0,7)
if r > 4:
showerror()
elif r <= 4:
addpoint()
tk = Tk()
tk.title("Are u Lucky")
tk.geometry("400x300")
def Start():
P1 = Label(tk, text="Choose")
P1.place(x=157,y=10)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=10 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=50 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=90 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=130 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=170 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=210 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=250 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=290 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=330 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=370 ,y=30)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=10 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=50 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=90 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=130 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=170 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=210 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=250 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=290 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=330 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=370 ,y=60)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=10 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=50 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=90 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=130 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=170 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=210 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=250 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=290 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=330 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=370 ,y=90)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=10 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=50 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=90 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=130 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=170 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=210 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=250 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=290 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=330 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=370 ,y=120)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=10 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=50 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=90 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=130 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=170 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=210 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=250 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=290 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=330 ,y=150)
P2 = Button(tk, text=" X ",command=test)
P2.place(x=370 ,y=150)
tk.mainloop()
這並不完美,但我對您的代碼做了一些改進。 一些技巧:
回答您的問題:您可以對任何 object 使用 .destroy() 或 (.forget_pack() and.forget_grid() )
代碼:
import random from tkinter import * from tkinter import messagebox point = 0 class Main(): def showerror(): messagebox.showerror("Loser","Next time:)") messagebox.showinfo("Your point", "Point: " + str(point)) def addpoint(): global point point += 31 def deleteButton(btn): btn.destroy() def test(btn): r = random.randint(0,7) if r > 4: Main.showerror() elif r <= 4: Main.addpoint() Main.deleteButton(btn) def __init__(root, master): root.master = master window = master window.title("Are u Lucky") window.geometry("400x300") P1 = Label(window, text="Choose") for x in range(1, 20): for y in range(1, 20): button = Button(window, text=" X ",) button.place(x=(10+x*40),y=(30+y*30)) button.configure(command=lambda btn=button: Main.test(btn)) root = Tk() window = Main(root) root.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.