【发布时间】:2020-09-22 21:09:54
【问题描述】:
我对 OOP 比较陌生,因此理论上了解它。我需要在 Tkinter 中实施一个项目。所以,我正在经历它。我只是在玩最基本的代码,如下所示
# https://python-textbok.readthedocs.io/en/1.0/Introduction_to_GUI_Programming.html
import tkinter as tk
class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
root = tk.Tk()
app = MainApplication(root)
app.mainloop()
在这里,我可以自信地说MainApplication 继承了 tk.Frame。所以,root 是一个TK object,它在MainApplication constructor 中传递,将其分配为MainApplication 对象的parent。
所以,当我们调用app.mainloop() 时,MainApplication object 会被调用,这反过来又可以以某种方式调用root,因为我们将root 作为parent 的app object。
如果我理解错了,请纠正我。
现在,当我浏览时,人们正在使用的另一种流行方法是
# https://docs.python.org/2/library/tkinter.html#a-simple-hello-world-program
import tkinter as tk
class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
root = tk.Tk()
MainApplication(root)
root.mainloop()
在这里,据我所知,MainApplication 被调用,root 成为它的parent。但是如何链接 MainApplication object 和root object,以便在调用root.mainloop() 时,它可以引用回MainApplication object? p>
感谢任何帮助。提前致谢。
【问题讨论】:
标签: python oop user-interface tkinter