繁体   English   中英

框架中的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()

运行此命令时,它不会将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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM