在Tkinter中向画布添加一个框架

时间:2012-01-20 18:20:03

标签: tkinter

使用Tkinter我有一个名为self.edit_window的Toplevel,一个名为frame的Frame和一个名为canvas的Canvas。我想要的是将帧添加到画布,我尝试使用create_window方法:

#make canvas
canvas = Tkinter.Canvas(self.edit_window) 

#make frame and add to canvas
frame = Tkinter.Frame()
canvas.create_window(0,0, anchor = Tkconstants.NW, window = frame, width = 200, height = 200)

我在create_window调用上遇到以下错误:

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

我不知道这意味着什么。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您提供的代码不会出现此错误。您某些代码是否足以说明问题?

话虽如此,你说你得到的错误与尝试向画布添加一个不是画布的兄弟或孩子的窗口是一致的。根据官方tk文件:

  

pathName指定的窗口必须是画布的子窗口   小部件或画布小部件的某个祖先的子节点。 PathName可以   不要参考顶级窗口。

如果你让你的画面成为画布的孩子,这个问题就会消失(但严格来说,它不一定是直接的孩子)。