【问题标题】:Tkinter; Put a widget in the lower-right corner using place()特金特;使用 place() 在右下角放置一个小部件
【发布时间】:2014-10-13 07:23:33
【问题描述】:

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

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

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

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

我不想在此使用 packgrid

无论如何,我希望它可以放在另一个已经存在的小部件之上,而不是打包到其中(因为这给我带来了问题,我需要为每个选项卡创建一个新的小部件,而这种方式我只需要一个小部件)。

【问题讨论】:

    标签: python layout tkinter


    【解决方案1】:

    这将允许您在右下角获取小部件(并自动考虑小部件的大小)。

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

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

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

    【讨论】:

      【解决方案2】:

      这样做的一个好方法是,如果您无法将其粘贴在角落中停留的位置,则使其无法调整大小。

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

      这是一种伟大的方法,尤其是当您进行小型登录时!

      希望对大家有帮助!

      请务必回复!谢谢!

      【讨论】:

      • 你能解释一下使它无法调整大小的原因吗?谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 2012-11-14
      • 2021-08-28
      相关资源
      最近更新 更多