2013-10-26 38 views
5

我试图把一个LabelFrame它显示一个Label一个Canvas里面,但是我收到此错误:内创建一个LabelFrame一个Tkinter的帆布

TclError: can't use .28425672.27896648 in a window item of this canvas

这里是我的代码:

from Tkinter import LabelFrame, Label, Tk, Canvas 

root = Tk() 

canvas = Canvas(root) 
canvas.pack() 

label_frame = LabelFrame(text="I'm a Label frame") 
label = Label(label_frame,text="Hey I'm a Label") 

canvas.create_window(10,20,window=label) 

root.mainloop() 

回答

2

制作canvaslabel_frame孩子,并在框架内包装label。然后通过label_frame(而不是label)至create_window

... 
label_frame = LabelFrame(canvas, text="I'm a Label frame") 
label = Label(label_frame, text="Hey I'm a Label") 
label.pack() 

canvas.create_window(10, 20, window=label_frame, anchor='w') 
... 

anchorCENTER默认。要正确对齐,请指定anchor为w

+0

没有'Labelframe'显示然后对不起:( –

+0

@KDawG,我更新了答案。 – falsetru

+0

这是一个编辑的地狱!谢谢! –