我想我的「退出」按鈕關閉窗口,並結束程序,無論它被按下。現在它首先被按下,但如果首先按下「滾動」按鈕,那麼「退出」按鈕不會關閉窗口。我是一名初學者程序員,所以我確信我的代碼中存在不相關的問題,但是如果您能幫助我解決這個特定問題,請提前致謝!Python Tkinter - 退出按鈕不工作,如果其他按鈕先點擊
from Tkinter import *
from random import randint
class Application(Frame):
def displayBoard(self):
self.canvas1 = Canvas(self, width=200, height=200)
self.canvas1.pack()
self.canvas2 = Canvas(self, width=200, height=200)
self.canvas2.pack()
self.roll_button = Button(self, text="Roll the Dice", command=self.roll)
self.roll_button.pack()
self.clear = Button(self, text="Clear", command=self.resetBoard)
self.clear.pack()
self.quit = Button(self, text="Quit", command=self.quit)
self.quit.pack()
def __init__(self, master=None):
Frame.__init__(self, master)
Pack.config(self)
def roll(self):
die1 = faces[(randint(1,6)-1)]
die2 = faces[(randint(1,6)-1)]
self.resetBoard()
self.canvas1.create_text(20, 30, anchor=W, text=die1)
self.canvas1.pack()
self.canvas2.create_text(20, 30, anchor=W, text=die2)
self.canvas2.pack()
def resetBoard(self):
self.canvas1.destroy()
self.canvas2.destroy()
self.clear.destroy()
self.roll_button.destroy()
self.quit.destroy()
self.displayBoard()
def quit(self):
self.master.quit()
self.master.destroy()
master = Tk()
face1 = """\n
__________
| |
| |
| () |
| |
|__________|
"""
face2 = """\n
__________
| |
| () |
| |
| () |
|__________|
"""
face3 = """ \n
__________
| |
| () |
| () |
| () |
|__________|
"""
face4 = """\n
__________
| |
| () () |
| |
| () () |
|__________|
"""
face5 = """ \n
__________
| |
| () () |
| () |
| () () |
|__________|
"""
face6 = """ \n
__________
| |
| () () |
| () () |
| () () |
|__________|
"""
faces = [face1, face2, face3, face4, face5, face6]
dicegame = Application()
dicegame.displayBoard()
dicegame.mainloop()
嘗試重命名你的'退出()'函數;當你嘗試重新設置開發板時,可能會發現'self.quit'是一個'Button',並且正在調用該按鈕作爲它的動作。可能會拋出一個只是沉默或內容的內部死亡參考。 – Delioth
@Delioth:這正是發生的事情。 'self.quit'在這段代碼的不同時間意味着不同的事物。 –