Python和Tkinter根命名

时间:2016-09-25 00:35:34

标签: tkinter instance

我经常在最后看到使用root.mainloop()的GUI。 靠近顶部有时他们会:     根= tk.TK() 有时他们只是说:     根= Tk的()

这两个陈述是否有所不同? (以下示例)

from Tkinter import *
class App:
  def __init__(self, master):
    frame = Frame(master)
    frame.pack()
    self.button = Button(frame, 
                         text="QUIT", fg="red",
                         command=frame.quit)
    self.button.pack(side=LEFT)
    self.slogan = Button(frame,
                         text="Hello",
                         command=self.write_slogan)
    self.slogan.pack(side=LEFT)
  def write_slogan(self):
    print "Tkinter is easy to use!"

root = Tk()
app = App(root)
root.mainloop()
import Tkinter as tk

counter = 0 
def counter_label(label):
  counter = 0
  def count():
    global counter
    counter += 1
    label.config(text=str(counter))
    label.after(1000, count)
  count()

root = tk.Tk()
root.title("Counting Seconds")
label = tk.Label(root, fg="dark green")
label.pack()
counter_label(label)
button = tk.Button(root, text='Stop', width=25, command=root.destroy)
button.pack()
root.mainloop()

1 个答案:

答案 0 :(得分:1)

区别在于import语句。在from Tkinter import *之后,Tkinter中的所有名称都直接合并到您的命名空间中;实际上,您无法引用Tkinter本身,因为该名称未导入。相比之下,import Tkinter as tk仅导入Tkinter(在短路别名tk下),并且对Tkinter模块中名称的所有进一步引用都必须以该名称为前缀。