如何在tkinter中放置一个形状

时间:2014-03-31 11:16:50

标签: python tkinter window shapes

我可以使用.create方法创建一个形状,但我想知道如何将它放在窗口的某个位置...我已经尝试过使用.pack()但是它提出了一个错误......请帮忙。

e.g。

circle = canvas.create_oval(5, 5, 40, 40, outline="blue",
                fill="green", width=2)

现在我需要在窗口的某个位置放置圆圈(.pack()不起作用)

2 个答案:

答案 0 :(得分:1)

create_oval用于创建放置椭圆。 create_oval(5, 5, 40, 40)会在“框”内创建您的圈子,其中(5,5)(40,40)是对角线矩形的坐标,其中将绘制圆圈。绘制矩形的方式相同。

enter image description here

修改:如果您有x_radiusy_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'))/2y=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()