2015-06-03 26 views
0

我只是遇到问题。 我不能在我的应用程序的某个部分使用place方法。Tkinter无法使用的地方()

例如:

root = Tk() 
gameFrame = Frame(root) 
gameFrame.place(x=125, y=75) 
在我的应用程序的开头

,我创造了一些框架,然后我的“gameFrame”定位与方法的地方,和它的作品!

但后来,我在一个又一个功能,我想手动地方帆布:

canvas = Canvas(gameFrame, width=50, height=50,bd=0) 
canvas.create_polygon(25, 0, 50, 15, 50, 35, 25, 50, 0, 35, 0, 15, fill="grey") 
canvas.place(x=50+50*i, y=50+50*j) 

它显示任何内容,无论是一个错误。 有人可以帮我吗?谢谢

回答

0

因为您还没有在gameFramegridpack任何东西,帧的大小将是1x1。当您使用place时,该框架不会长大或缩小以适合其子女。因此,即使您将画布放在框架中,画布也不可见,因为画框只有一个像素宽且高。

最好的解决办法是使用place,而是使用gridpack。如果您坚持使用place,则需要给gameFrame指定明确的宽度和高度,或使用relwidthrelheight属性使其在根窗口中生效。

+0

谢谢! (我现在觉得很愚蠢) –