Tkinter的;使用place()将小部件放在右下角

时间:2014-08-20 03:16:20

标签: python layout tkinter

[注意:我只是问这个问题才能发布答案,因为在我完成询问之前我找到了答案,我认为其他人可能想知道。我的回答是有目的的答案,而不是问题的一部分。]

如何使用Tkinter的myWidget.place()方法在屏幕的右下角获取小部件(完全可见)?我尝试使用anchor=SE,但小部件消失了(虽然它在那里;它只是在屏幕的某处)。以下代码适用于右上角:

self.entry.place(relx=1, x=0, y=-1, anchor=NE);

但是,将锚点更改为SE并不能达到我的预期。

我不想使用packgrid

无论如何,我希望这可以放在已经存在的另一个小部件的顶部,而不会被打包到它中(因为这给我带来了问题,我需要为每个标签提供一个新的小部件,而这样我只需要一个小部件)。

2 个答案:

答案 0 :(得分:3)

这样您就可以在右下角获取小部件(并自动考虑小部件的大小)。

myWidget.place(rely=1.0, relx=1.0, x=0, y=0, anchor=SE)
对于1.0

rely表示主窗口小部件的底部。 1.0 relx表示主窗口小部件的右侧。

在回应高级评论询问我的来源时,我不记得我第一次发现它的位置,但是这个方法的文档几乎说明了我在这个答案中所说的内容。转到python3解释器,输入import tkinter;键入help(tkinter.Text.place)并查看relx和依赖。 " relx = amount - 相对于master的宽度(1.0是右边缘)定位此窗口小部件的锚点在0.0和1.0之间"和"依赖=数量 - 相对于主人的身高(1.0是下边缘)",定位这个小部件的锚点在0.0和1.0之间。 (是的,我定位的小部件实际上是一个修改过的Text小部件 - 而不是Entry小部件,即使我在问题中将其称为self.entry,因为我喜欢使用Text小部件,人们通常使用Entry小部件。)

答案 1 :(得分:0)

执行此操作的一种好方法是,如果您 不能将其粘贴在其停留的角落,则使其无法调整大小。

`from tkinter import *
root = Tk()
root.title("What ever you want")
root.resizable(0,0)
bt = Button(root, text="Click Me!")
bt.grid(row=1, column=1)`

这是一种出色的方法,尤其是当您进行小的登录时!

  

我希望这对大家有帮助!

     

请务必回复!谢谢!