Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法使用place()_Python_Tkinter - Fatal编程技术网

Python 无法使用place()

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

我试图使用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, 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)