from Tkinter import *
root = Tk()
root.title("Whois Tool")
text = Text()
text1 = Text()
text1.config(width=15, height=1)
text1.pack()
def button1():
text.insert(INSERT, text1.get("1.0", END))
b = Button(root, text="Enter", width=10, height=2, command=button1)
b.pack()
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)
text.config(width=60, height=15)
text.pack(side=LEFT, fill=Y)
scrollbar.config(command=text.yview)
text.config(yscrollcommand=scrollbar.set)
root.mainloop()
上面的脚本没有任何异常错误,但是如果我修改导入样式:将Tkinter导入为Tk,它会抱怨有关参数'LEFT,RIGHT,Y',我必须以字符串形式将它们设为低位字母,如下所示脚本,为什么会这样?
import Tkinter as tk
root = tk.Tk()
root.title("Whois Tool")
text = tk.Text()
text1 = tk.Text()
text1.config(width=15, height=1)
text1.pack()
def button1():
text.insert('insert', text1.get("1.0", 'end'))
# text.insert(END, text1)
b = tk.Button(root, text="Enter", width=10, height=2, command=button1)
b.pack()
scrollbar = tk.Scrollbar(root)
scrollbar.pack(side='right', fill='y')
text.config(width=60, height=15)
text.pack(side='left', fill='y')
scrollbar.config(command=text.yview)
text.config(yscrollcommand=scrollbar.set)
root.mainloop()
答案 0 :(得分:2)
LEFT
,RIGHT
和其他一些是Tkinter定义的常量。这些常量的值是字符串"left"
,"right"
等
执行from Tkinter import *
时,这些常量会与其他所有内容一起导入。当你执行import Tkinter as tk
时,他们不这样做,就像没有其他任何东西被导入一样。在这种情况下,您可以通过使用模块名称完全限定它们来引用它们,例如:tk.LEFT
,tk.RIGHT
等。
无论您如何导入它们,小写字符串始终有效。我个人认为这些常数没用,因为它们并没有真正提供任何好处。
答案 1 :(得分:0)
当您使用"将Tkinter导入为Tk"时,您必须使用对象Tk调用Tkinter的所有方法和属性。因此,而不是"左","右"你必须使用Tk.LEFT,Tk.RIGHT ......
在你使用的第一个例子中 " scrollbar = Scrollbar(root)" 但在你写的第二个 " scrollbar = tk.Scrollbar(root)"
你在第二个例子中使用对象Tk调用了Tkinter中的所有内容。 有关Python模块的更多信息,请访问:http://www.tutorialspoint.com/python/python_modules.htm