Python 和 Tkinter 根命名
Python and Tkinter root naming
我经常看到最后使用 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()
区别在于导入语句。在 from Tkinter import *
之后,所有来自 Tkinter 的名称都直接合并到您的命名空间中;事实上,您不能引用 Tkinter
本身,因为该名称未被导入。相比之下,import Tkinter as tk
仅导入 Tkinter
(在简称 tk
下),并且所有对 Tkinter 模块中名称的进一步引用都必须以该名称为前缀。
我经常看到最后使用 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()
区别在于导入语句。在 from Tkinter import *
之后,所有来自 Tkinter 的名称都直接合并到您的命名空间中;事实上,您不能引用 Tkinter
本身,因为该名称未被导入。相比之下,import Tkinter as tk
仅导入 Tkinter
(在简称 tk
下),并且所有对 Tkinter 模块中名称的进一步引用都必须以该名称为前缀。