【问题标题】:Why does this label go off screen when anchored?为什么这个标签在锚定时会离开屏幕?
【发布时间】:2021-07-02 15:46:49
【问题描述】:

我想锚定这个标签,但由于某种原因,它一直在我的电脑屏幕上消失,我不知道是不是只有我,但这是我的代码:

import tkinter as tk


root = tk.Tk()
root.attributes("-fullscreen", True)


label_frame = tk.Frame(root)
answer_label = tk.Label(label_frame, text="text")
answer_label.grid(row = 0, column = 0)
label_frame.place(anchor = "n")


root.mainloop()

【问题讨论】:

  • 在放置label_frame 时不应该给出x 和y 值吗?
  • 我建议使用.pack() 或.grid()
  • 另一个建议:您可以立即打包小部件并稍后添加内容

标签: python python-3.x user-interface tkinter widget


【解决方案1】:

为什么这个标签在锚定时会离开屏幕?

考虑这行代码:

label_frame.place(anchor = "n")

anchor 选项告诉 tkinter 帧的哪一部分被放置在给定的坐标处。 n 表示“北”,或框架的顶部中心。因此,无论给出什么坐标,框架的顶部中心部分都将位于这些坐标处。

由于您没有给出任何坐标,因此它们默认为 x=0 和 y=0。因此,框架的中上部分将被放置在 0,0 处。这意味着框架的左半部分将位于坐标 0,0 的左侧。

如果你坚持使用place,并且如果你想让框架居中,你可以给一个0.5的relx,这意味着锚位置(n)将被放置在宽度的中间包含的小部件。

label_frame.place(relx=.5, y=0, anchor = "n")

【讨论】:

    【解决方案2】:

    试试

    label_frame.place(anchor = "nw")
    

    对此进行了测试,似乎将标签放在正确的位置。

    【讨论】:

      猜你喜欢
      • 2020-05-27
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 2014-06-25
      • 1970-01-01
      • 2020-12-24
      • 2020-09-02
      • 1970-01-01
      相关资源
      最近更新 更多