我目前正在为游戏编写游戏项目"连续4"。为了使图片小部件磁盘落在列中的动画,我一直在考虑创建一个while循环,如下所示:
while widgetx != __ and widgety != __
在空白部分,我将需要获得值。
我的问题是,是否有一个函数可以返回小部件的当前x
和y
值。
答案 0 :(得分:4)
winfo_rootx()和winfo_rooty()返回相对于屏幕左上角的坐标。 winfo_x和winfo_y返回窗口相对于其父窗口的坐标。
答案 1 :(得分:3)
您可以尝试winfo_rootx()和winfo_rooty()。
来自effbot.com:
winfo_rootx()
获取小部件左边缘的像素坐标,相对于屏幕的左上角。
返回:根坐标。
winfo_rooty()
获取小部件上边缘的像素坐标,相对于屏幕的左上角。
返回:根坐标。
来自nullege.com的示例:
# get self position & height
lv_x = self.winfo_rootx()
lv_y = self.winfo_rooty()
答案 2 :(得分:0)
是的,它是一个名为coords的小部件的方法,
coords(tagOrId,x0,y0,x1,y1,...,xn,yn)查询或修改 定义项目的坐标。如果没有指定坐标,则为此 方法返回一个元组,其元素是项的坐标 由tagOrId命名。如果指定了坐标,则它们将替换 命名项的当前坐标。如果tagOrId指的是多个 项目,然后使用显示列表中的第一个 - 来自" Python和Tkinter编程"作者:John E. Grayson
示例:
root = Tk()
calibCanvas = Canvas(root, width=800,height=800,bg='WHITE')
canvasRect = calibCanvas.create_rectangle(400,400,410,410, outline='BLUE')
print calibCanvas.coords(canvasRect)