Python 框架中的 Tkinter 标签

Python Tkinter Label in Frame

我想在 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()

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

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

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

在行

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

你认为你是return一个tk框架,但你不是!你得到place方法的return值,即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 *,但不能同时。此外,按照惯例,对象实例的名称是小写的。