Python 无法使用place()
我试图使用tkinter,需要让一个对象转到特定的坐标,我尝试了Python 无法使用place(),python,tkinter,Python,Tkinter,我试图使用tkinter,需要让一个对象转到特定的坐标,我尝试了place,但它给了我一个错误: player.place(x=0, y=0) AttributeError: 'int' object has no attribute 'place' 另外,所有有关place命令的教程仅介绍按钮的使用。所以我想知道它是否是按钮的专有功能 from tkinter import * import time tk = Tk() canvas = Canvas(tk, width=400, he
place
,但它给了我一个错误:
player.place(x=0, y=0)
AttributeError: 'int' object has no attribute 'place'
另外,所有有关place
命令的教程仅介绍按钮的使用。所以我想知道它是否是按钮的专有功能
from tkinter import *
import time
tk = Tk()
canvas = Canvas(tk, width=400, height=400)
canvas.pack()
player = canvas.create_rectangle(10, 10, 50, 50)
player.place(x=0, y=0)
place
只能用于小部件。画布项不是小部件。另外,在画布对象上使用place
没有任何意义,因为部分定义或画布对象需要对象添加到画布的坐标。如果您只想移动矩形而不想移动画布,可以尝试以下操作:
canvas.coords(player,x0,y0,x1,y1)
作为
您不需要对放置在画布上的对象调用place()
(或pack()
或grid()
)。它们中的大多数在创建时会得到它们的位置(即x和y坐标)——它们的位置/位置不是通过通常的小部件几何管理器来管理的。这里有一点。place
只能用于小部件。画布项目不是小部件。请使用Canvas.moveto(player,x,y)
其中x,y
是您想要的位置。既然画布对象不能移动到我不想让它移动到的地方,我该如何计算它会移动到哪里呢parameters@hashdankhog例如我不明白这个问题。对于大多数对象,前两个参数是对象所在的x、y坐标。当你创建它时,你准确地告诉它去哪里。在画布上创建一个对象而不给它坐标是不可能的。问题是当我改变前两个参数时,它改变了size@well对坐标定义了位置和大小。是否要在创建对象后移动它?@hashdankhog-当您更改第二个参数时,它将更大程度地更改大小:canvas.create_矩形(x,y,x+宽度,y+高度)
。
canvas.coords(player,10,20,50,60)