我一直在为自己开发一个笔记程序并且进展顺利,但是我在使用 .pack()
将所有小部件放置在我想要的位置时遇到了很多问题或 .grid()
选项。
环顾四周后,我发现我可以改用 .place()
选项。在我决定使用 .place()
之前,我发现无数论坛帖子说 “不要使用 .place()
!”。
我对其他选择犹豫不决,所以我决定尝试一下 .place()
。事实证明 .place()
正是我解决布局问题所需要的,我只是不明白为什么每个人都如此讨厌 .place()
。
.place()
有什么内在的错误吗?或者人们只是出于某些实际原因而不是易用性而更喜欢使用 .pack()
和 .grid()
?
最佳答案
我不确定您有什么证据表明每个人 都说不要使用place
。我怀疑如果您是通过 stackoverflow 帖子来判断,您主要是在阅读我的观点一百次而不是一百次不同的观点。
我不推荐 place
主要是因为它需要更多的工作来制作一个响应字体、分辨率和窗口大小变化的 UI。虽然可以编写一个使用 place 并对这些东西做出响应的 GUI,但要做到正确需要大量工作。
pack
和 grid
相对于 place
的一个优势是它们允许 tkinter 正确配置根和 的大小>顶层
窗口。使用 place
时,您必须对大小进行硬编码。 Tkinter 非常擅长使窗口的大小完全正确,而无需您决定明确的大小。
此外,长期维护使用place
的应用程序很困难。如果您想添加一个新的小部件,您几乎肯定必须调整所有其他小部件。使用 grid
和 pack
可以更轻松地添加和删除小部件,而无需更改所有其他小部件的布局。如果我多年来使用 tk 和 tkinter 学到了什么,那就是我的小部件布局在开发过程中发生了很大的变化。
place
主要用于边缘情况。例如,如果您想将一个小部件置于另一个小部件的中心,place
就很棒。此外,如果您想放置一个独立于其他小部件的小部件,place
也非常适合。
关于python - 为什么人们说 "Don' t 使用 place()”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072375/