Python TkInter中小部件的.pack和.configure之间的区别?
我目前正在学习一篇文章,试图在我试图改进Python3编程的过程中,教自己更多关于TkInter的知识。如有必要,可在此处找到文本: 在标有“tt040.py”的部分中,有一个示例代码,部分代码是:Python TkInter中小部件的.pack和.configure之间的区别?,python,methods,tkinter,Python,Methods,Tkinter,我目前正在学习一篇文章,试图在我试图改进Python3编程的过程中,教自己更多关于TkInter的知识。如有必要,可在此处找到文本: 在标有“tt040.py”的部分中,有一个示例代码,部分代码是: self.button1 = Button(self.myContainer1) self.button1["text"] = "Hello, World!" ### (1) self.button1["background"] = "green" ### (1)
self.button1 = Button(self.myContainer1)
self.button1["text"] = "Hello, World!" ### (1)
self.button1["background"] = "green" ### (1)
self.button1.pack()
self.button2 = Button(self.myContainer1)
self.button2.configure(text="Off to join the circus!") ### (2)
self.button2.configure(background="tan") ### (2)
self.button2.pack()
self.button3 = Button(self.myContainer1)
self.button3.configure(text="Join me?", background="cyan") ### (3)
self.button3.pack()
这部分代码的解释如下:
“(2)对于button2,过程基本上与button1相同,但我们使用按钮的内置“配置”方法,而不是访问按钮的字典
(3) 对于button3,我们看到configure方法可以接受多个关键字参数,因此我们可以在一条语句中设置多个选项。”
这个解释到底是什么意思?与中一样,.configure方法的实际区别(与.pack)或需求是什么?“按钮的字典”是什么意思?每个小部件都有一个属性字典(
text
,background
,…)。您可以使用常规字典语法访问它,如self.button1[“text”]=“Hello,World!”
或使用您在其他示例中看到的configure
方法。这只是为了设置小部件的外观和行为
完成后,调用pack
让Tkinter现在就可以使用小部件了。然后它将被显示,等等
您可以通过在解释器中逐步执行Tkinter命令看到这一点,如下所示:
>>> from Tkinter import *
>>> root = Tk()
>>> bt = Button(root)
>>> bt['text'] = 'hello'
>>> bt.pack()
Tkinter对象属性不是通过python属性机制处理的(即您可以不执行
self.button1.text=“hello”
)。相反,tkinter提供了两种更改此属性的方法:
- 将该对象用作词汇:
self.button1[“text”]=“hello”
- 对命名参数使用
方法:config
self.button1.config(text=“hello”)
self.button1=Button(self.myContainer1,text=“hello”)
pack
具有完全不同的用途。这是一个几何管理说明。在没有参数的情况下使用button1.pack()
ask将button1
放置在其父窗口小部件的前一个同级(如果有)下面。可以使用指定相对位置或调整行为大小
tkinter还有其他几何体管理器:grid和place,请参阅以进行比较。您是否知道未选择属性机制的原因?早在Python1.x中首次添加Tkinter时,
\uuuuu setattr\uuuuu
方法和朋友就不存在了吗?还是有意识地认为使用\uuuuu setitem\uuuuu
会更好?我目前正在寻找是否有一个旧的政治公众人物或邮件列表,其中讨论了这一点,但我没有找到任何东西。