小编Dok*_*ard的帖子

调用Tk()实际上做了什么?

当我看到NMT Tkinter 8.5参考文献中的一个最小例子时,我正在刷Tkinter.

#!/usr/bin/env python
import tkinter as tk

class Application(tk.Frame):    
    def __init__(self, master=None):    
        tk.Frame.__init__(self, master)
        self.grid()
        self.createWidgets()

    def createWidgets(self):    
        self.quitButton = tk.Button(self, text='Quit',command=self.quit)
        self.quitButton.grid()

app = Application()
app.master.title('Sample application')
app.mainloop()
Run Code Online (Sandbox Code Playgroud)

这一切都很好,直到我注意到Tk该类没有被初始化.在我可以找到的其他在线参考资料(Python的库参考,effbot.org,TkDocs)中,通常会调用root = tk.Tk()其他示例构建的参考资料.我也没有Tk在NMT的引用上看到任何类型的初始化类引用.

我可以得到的有关Tk该类的信息也很模糊,Python Reference仅将其列为"顶级窗口小部件......通常是应用程序的主窗口".最后,如果我替换前面提到的代码段中的最后几行:

root = tk.Tk()
app = Application(root)
Run Code Online (Sandbox Code Playgroud)

该程序将像以前一样运行.考虑到这一切,我有兴趣知道的是:

  • 调用root = tk.Tk()实际上是做什么的(例如,什么被初始化)以及为什么前一个片段在没有它的情况下工作?
  • 如果我不打电话Tk()并在Frame课堂上构建我的应用程序,我会遇到任何陷阱或限制吗?

python tk-toolkit tkinter

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

python ×1

tk-toolkit ×1

tkinter ×1