ゲームを終了するポップアップウィンドウを作る必要があります。ポップアップウィンドウは、ゲームクラスの内部または外部のいずれかにすることができます。私が試してみましたtkinterポップアップからゲーム(オブジェクト)を閉じる
from tkinter import *
import tkinter as tk
class Game(object):
def __init__(self, master):
master.title("Game")
self._master = master
self._canvas2 = tk.Canvas(master, bg='grey', width=300, height=50)
self._canvas2.pack()
self._canvas = tk.Canvas(master, bg='grey', width=300, height=200)
self._canvas.pack()
#if conditions met, open popup:
self.popup()
def popup(self):
end = Toplevel()
end.title("End")
msg = Message(end, text="The game has ended")
msg.pack()
button = Button(end, text="Close", command=self._canvas.destroy)
button.pack()
def main():
root = tk.Tk()
app = Game(root)
root.mainloop()
if __name__ == '__main__':
main()
その他のオプション現時点では、それが唯一のキャンバスを閉じて、私が作ることができるか、それは自分自身を閉じて、キャンバスとcanvas2は、ユーザーがクリックしたときに「閉じる」: command=self.destroy
、command=self.exit()
、command=self.quit()
ゲームは割り当て制限のためオブジェクトでなければならないことに注意してください。最下部の初期設定も私のために提供されました。ポップアップはトップレベルのウィンドウである必要はありませんが(しかし、tkinterを使う必要があります)、これは私が実装しようとしているものです。
は、両方のキャンバスを削除し、独自の関数を作成し、あなたのボタンからその関数を呼び出してみましたか? –
ちょうど試しましたが、運はありません。 'command = self.close()'、 'def close(self):'、 'self._canvas.destroy、self._canvas2.destroy'何も起こりません。また、クラスの外に置いてみました(と自己を削除する)が、これも動作しません。アプリ上でそれを呼び出そうとしました、ルート.... – 009