簡體   English   中英

Python Tkinter類結構練習

[英]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() :您可以根據需要調用它。 您只需要對根窗口的引用。 如果將其稱為rootroot.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM