Python Tkinter小部件参数混乱

时间:2014-08-22 01:41:30

标签: python tkinter

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()

2 个答案:

答案 0 :(得分:2)

LEFTRIGHT和其他一些是Tkinter定义的常量。这些常量的值是字符串"left""right"

执行from Tkinter import *时,这些常量会与其他所有内容一起导入。当你执行import Tkinter as tk时,他们不这样做,就像没有其他任何东西被导入一样。在这种情况下,您可以通过使用模块名称完全限定它们来引用它们,例如:tk.LEFTtk.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