gpt4 book ai didi

Python Tkinter 类结构实践

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:45 24 4
gpt4 key购买 nike

#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()

这是一个好的做法,或者,换句话说,直接从 Canvas 而不是框架继承是否存在问题,例如,如果我不打算添加除 Canvas 之外的任何小部件?

我的另一个问题是关于root.destroy()。我不明白为什么我不能说 master.destroy() 或类似的东西。

最佳答案

Canvas 或任何其他 Tkinter 小部件继承没有任何问题。

re master.destroy()root.destroy():您可以随意调用它。您只需要对根窗口的引用。如果您将其称为root,则要销毁它,您将调用root.destroy()

一般来说,您应该避免使用全局变量。鉴于您将根小部件传递给您的类,您可以保存引用并使用它:

class Game(tk.Canvas):

def __init__(self, master):
self.master = master
...
def quit_game(self):
self.master.destroy()

关于Python Tkinter 类结构实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35432462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com