![](/img/trans.png)
[英]Best class structure practice for step by step object manipulation in python
[英]Python Tkinter class structure practice
#game class
import Tkinter as tk
class Game(tk.Canvas):
def __init__(self, master):
canvas = tk.Canvas(master)
canvas.pack()
button = tk.Button(canvas, text='Quit', command=self.quit_game)
button.pack()
def quit_game(self):
root.destroy()#Should i put something else here?
root = tk.Tk()
game = Game(root)
root.mainloop()
這是一種好習慣嗎,換句話說,直接從畫布繼承而不是從框架繼承是否存在問題,例如,如果我不添加除畫布之外的任何小部件,是否存在問題?
我還有一個關於root.destroy()
。 我不明白為什么我不能說master.destroy()
東西。
從Canvas
或任何其他Tkinter小部件繼承沒有任何問題。
重新master.destroy()
與root.destroy()
:您可以根據需要調用它。 您只需要對根窗口的引用。 如果將其稱為root
, root.destroy()
銷毀它,可以調用root.destroy()
。
通常,應避免使用全局變量。 假設您要將根窗口小部件傳遞給您的類,則可以保存引用並使用它:
class Game(tk.Canvas):
def __init__(self, master):
self.master = master
...
def quit_game(self):
self.master.destroy()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.