Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 在棋盘上移动椭圆形_Python_Python 3.x_Tkinter_Tkinter Canvas - Fatal编程技术网

Python 在棋盘上移动椭圆形

Python 在棋盘上移动椭圆形,python,python-3.x,tkinter,tkinter-canvas,Python,Python 3.x,Tkinter,Tkinter Canvas,我有一个有32个可移动物体的棋盘。那些可移动的物体是带字母的圆圈 boardGUI.创建椭圆(x0+tileSize*j+((1/5)*tileSize),y0+tileSize*i+((1/5)*tileSize),x0+tileSize*(j+1)-(1/5)*tileSize),y0+tileSize*(i+1)-(1/5)*tileSize),fill=“#000”) boardGUI.create_text(x0+tileSize*j+(tileSize/2),y0+tileSize*

我有一个有32个可移动物体的棋盘。那些可移动的物体是带字母的圆圈

boardGUI.创建椭圆(x0+tileSize*j+((1/5)*tileSize),y0+tileSize*i+((1/5)*tileSize),x0+tileSize*(j+1)-(1/5)*tileSize),y0+tileSize*(i+1)-(1/5)*tileSize),fill=“#000”)
boardGUI.create_text(x0+tileSize*j+(tileSize/2),y0+tileSize*i+(tileSize/2),text=matrix[i][j][0]。upper(),font=(“Helvetica”,12,“bold”),fill=“#FFF”)

因此我的问题是:如何同时移动圆圈和字母?(第一次单击应获得工件的坐标,第二次单击应将工件移动到新坐标)

我试着使用tkinter的find_overlapping和find_closest方法,但是find_overlapping给了我一个包含3个元素的元组,find_closest只返回一个元素,所以我不知道该怎么做


提前感谢您的帮助:)

您可以通过标签系统同时移动瓷砖和字母。这将通过在创建平铺和字母对象时,在对象参数中添加
、tag=“tile{}-{}”.format(i,j)
或类似样式的内容来实现

使用您的代码,这可能看起来像:

boardGUI.create_oval(... , tag = "tile{}-{}".format(i, j) )

boardGUI.create_text(... , tag = "tile{}-{}".format(i, j) )
其中现有代码与省略号中的代码相同

这(假设i和j增量正确)将为您提供一种同时移动磁贴和磁贴上字母的方法,可能是通过
boardGUI.move(“磁贴{}-{}.format(i,j),x,y)
,其中您可以使用要移动的磁贴在电路板上的位置格式化i和j值,当然,x/y值是您想要移动磁贴/字母的量


希望这有帮助

您可以通过标签系统同时移动瓷砖和字母。这将通过在创建平铺和字母对象时,在对象参数中添加
、tag=“tile{}-{}”.format(i,j)
或类似样式的内容来实现

使用您的代码,这可能看起来像:

boardGUI.create_oval(... , tag = "tile{}-{}".format(i, j) )

boardGUI.create_text(... , tag = "tile{}-{}".format(i, j) )
其中现有代码与省略号中的代码相同

这(假设i和j增量正确)将为您提供一种同时移动磁贴和磁贴上字母的方法,可能是通过
boardGUI.move(“磁贴{}-{}.format(i,j),x,y)
,其中您可以使用要移动的磁贴在电路板上的位置格式化i和j值,当然,x/y值是您想要移动磁贴/字母的量


希望这有帮助

请格式化您的代码。这里的代码只是为了显示画布上有一个圆圈和一个字母,它们是用来表示一个片段的。您的代码应该提供一个请格式化您的代码。这里的代码只是为了显示画布上有一个圆圈和一个字母,它们是用来表示一个片段的。您的代码应该提供一个