Python 如何将矩形放置在框架的左上角?

Python 如何将矩形放置在框架的左上角?,python,python-2.7,python-3.x,tkinter,Python,Python 2.7,Python 3.x,Tkinter,我可以使用tkinter在一个框架内绘制一个矩形,但当窗口最大化时,矩形不再位于框架的左上角 如何将矩形固定到框架的左上角 这就是我所拥有的: from Tkinter import * master = Tk() f1 = Frame(height=100, bd=2, relief=RAISED) f1.pack(fill=X, padx=3, pady=3) c = Canvas(f1) c.create_rectangle(1,1,100,90) c.pack() mainloo

我可以使用tkinter在一个框架内绘制一个矩形,但当窗口最大化时,矩形不再位于框架的左上角

如何将矩形固定到框架的左上角

这就是我所拥有的:

from Tkinter import *

master = Tk()

f1 = Frame(height=100, bd=2, relief=RAISED)
f1.pack(fill=X, padx=3, pady=3)

c = Canvas(f1)
c.create_rectangle(1,1,100,90)
c.pack()

mainloop()

您可以使用位置管理器,而不是使用包管理器。你将替换

f1.pack(fill=X, padx=3, pady=3)


例如,请参见。当然,使用绝对定位可以使您的布局对特定的窗口尺寸非常敏感。

经过上述代码的几次迭代后,这对我很有用:

from Tkinter import *

master = Tk()

f1 = Frame(height=100, bd=2, relief=RAISED)
f1.pack(fill=X, padx=3, pady=3)

c = Canvas(f1)
c.create_rectangle(1,1,100,90)
c.pack(fill=X,padx=3, pady=3)

mainloop()

f1帧放置正常,它从左上角一直延伸。这是我需要放在左上角的三角形。然后你可以使用
place
而不是
pack
来处理它。如何处理?它不起作用。矩形在中间。没有矩形.place()。将
c.pack()
替换为
c.place(x=0,y=0)
适用于Python 2.7.6。不过,您最好使用您在答案中显示的
c.pack(fill=X,padx=3,pady=3)
c.pack(anchor=NW)
。此外,您是否尝试过我上面最初的建议
f1.place(x=0,y=0)
适用于Python 2.7.6,f1.pack(anchor=NW)也是如此。问题在于,框架中的fill=X将填充放置在包含的块(画布)周围,这与fill=X在画布中应用时所做的不同。
from Tkinter import *

master = Tk()

f1 = Frame(height=100, bd=2, relief=RAISED)
f1.pack(fill=X, padx=3, pady=3)

c = Canvas(f1)
c.create_rectangle(1,1,100,90)
c.pack(fill=X,padx=3, pady=3)

mainloop()