【问题标题】:Python Tkinter Label in Frame框架中的 Python Tkinter 标签
【发布时间】:2017-01-27 14:09:37
【问题描述】:

我想在 tkinter 的框架内放置一个标签,但我不知道如何将它实际放入。

import tkinter
from tkinter import *

W=tkinter.Tk()
W.geometry("800x850+0+0")
W.configure(background="lightblue")

FRAME=Frame(W, width=100, height =50).place(x=700,y=0)

LABEL=Label(FRAME, text="test").pack()

当我运行它时,它不会将标签放置在框架内,而只是将其正常放置在窗口上。 我做错了什么?

【问题讨论】:

    标签: python tkinter label frame


    【解决方案1】:

    排队

    FRAME=Frame(W, width=100, height =50).place(x=700,y=0)
    

    你认为你正在返回一个 tk 帧,但你不是!你得到place方法的返回值,也就是None

    所以试试

    frame = Frame(W, width=100, height=50)
    frame.place(x=700, y=0)
    label = Label(frame, text="test").pack()
    

    如果您不希望框架缩小以适合标签,请使用 (How to stop Tkinter Frame from shrinking to fit its contents?)

    frame.pack_propagate(False) 
    

    注意:import tkinterfrom tkinter import * 但不能同时使用两者。此外,按照惯例,对象实例的名称是小写的。

    【讨论】:

      【解决方案2】:

      我认为这是因为您将FRAME 分配给Frame(W, width=100, height =50).place(x=700,y=0),而不仅仅是实际帧,并且根据Place Manager reference,似乎没有返回值。试试这个:

      import tkinter
      from tkinter import *
      
      W=tkinter.Tk()
      W.geometry("800x850+0+0")
      W.configure(background="lightblue")
      
      FRAME=Frame(W, width=100, height =50)
      FRAME.place(x=700,y=0)
      
      LABEL=Label(FRAME, text="test").pack()
      
      W.mainloop()
      

      【讨论】:

        猜你喜欢
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多