我可以使用.create方法创建一个形状,但我想知道如何将它放在窗口的某个位置...我已经尝试过使用.pack()但是它提出了一个错误......请帮忙。
e.g。
circle = canvas.create_oval(5, 5, 40, 40, outline="blue",
fill="green", width=2)
现在我需要在窗口的某个位置放置圆圈(.pack()不起作用)
答案 0 :(得分:1)
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
将在中间。
请参阅this tutorial。
答案 1 :(得分: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()