[英]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()
运行此命令时,它不会将Label放置在框架内,而只是将其正常放置在窗口上。 我究竟做错了什么?
在行中
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()
如果您不希望框架收缩以适合标签,请使用( 如何阻止Tkinter框架收缩以适应其内容? )
frame.pack_propagate(False)
注意:要么import tkinter
要么from tkinter import *
但不能两者都from tkinter import *
。 同样,按照惯例,对象实例的名称是小写的。
我认为这是因为您要将FRAME
分配给Frame(W, width=100, height =50).place(x=700,y=0)
,而不是实际的框架,并且根据位置管理器参考 ,似乎没有返回值。 尝试这个:
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.