框架中的Python Tkinter标签

时间:2016-09-19 19:33:36

标签: python tkinter label 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放在框架内,而只是将它正常放置在窗口上。 我做错了什么?

2 个答案:

答案 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 tkinterfrom 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()