如何在tkinter中放置形状

0 投票
2 回答
5976 浏览
提问于 2025-04-18 00:39

我可以用 .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_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 这样就能得到画布的中心点。

可以参考 这个教程

撰写回答