我想在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()
当我运行它时,它不会将Label放在框架内,而只是将它正常放置在窗口上。 我做错了什么?
答案 0 :(得分:6)
在第
行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 tkinter
或from tkinter import *
,但不是两者。此外,按照惯例,对象实例的名称是小写的。
答案 1 :(得分:1)
我认为这是因为您将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()