如何在tkinter中放置形状
我可以用 .create 方法来创建一个形状,但我想知道怎么把它放在窗口的某个特定位置……我试过用 .pack(),但出现了错误……请帮帮我。
比如:
circle = canvas.create_oval(5, 5, 40, 40, outline="blue",
fill="green", width=2)
现在我需要把圆形放在窗口的某个特定位置(.pack() 不管用)
2 个回答
0
这段内容是从一个网站修改而来的,网址是 http://effbot.org/tkinterbook/canvas.htm,这个网站是你解决所有Tkinter相关问题的首选地方。
from Tkinter import *
master = Tk()
#Create the canvas and pack it
w = Canvas(master, width=200, height=100)
w.pack()
#These will automatically be drawn on the already packed canvas
w.create_line(0, 0, 200, 100)
w.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
w.create_oval(50, 25, 150, 75, fill="blue")
mainloop()
2
create_oval
是用来创建并放置椭圆的。比如说,create_oval(5, 5, 40, 40)
这个命令会在一个“框”里画出一个圆圈,其中 (5,5)
和 (40,40)
是这个框的对角线的坐标,圆圈就是在这个框里画的。画矩形也是用同样的方法。
补充一下:如果你有 x_radius
和 y_radius
,你可以这样做:
create_oval(x-x_radius,y-y_radius,x+x_radius,y+y_radius)
要获取画布的大小,如果你没有用已知的大小来创建它(比如 canvas=Canvas(self.something, width='700', height='400')
),你可以使用 .cget(property)
:x=int(canvas.cget('width'))/2
和 y=int(canvas.cget('height'))/2
这样就能得到画布的中心点。
可以参考 这个教程。