Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 Tkinter坐标_Python_Tkinter - Fatal编程技术网

Python Tkinter坐标

Python Tkinter坐标,python,tkinter,Python,Tkinter,我正在用一个Pi2Go机器人做一个小项目,它将从超声波传感器获取数据,然后放置一个X,如果它看到的是一个物体,它现在在哪里,我有两个问题: 如何在tkinter上设置坐标位置?例如,我想在0、0或120120处插入文本 第二: 如何让tkinter不断更新我正在构建的地图 干杯 我刚刚拼凑了一些代码,向您简要介绍了如何使用place几何体管理器。有关更多说明,请参见代码中的注释: #!/usr/bin/env python3 # coding: utf-8 from tkinter impor

我正在用一个Pi2Go机器人做一个小项目,它将从超声波传感器获取数据,然后放置一个X,如果它看到的是一个物体,它现在在哪里,我有两个问题: 如何在tkinter上设置坐标位置?例如,我想在0、0或120120处插入文本

第二: 如何让tkinter不断更新我正在构建的地图
干杯

我刚刚拼凑了一些代码,向您简要介绍了如何使用
place
几何体管理器。有关更多说明,请参见代码中的注释:

#!/usr/bin/env python3
# coding: utf-8

from tkinter import *


# init our application's root window
root = Tk()
root.geometry('480x480')


# let's provide same sample coordinates with the desired text as tuples in a list
coords = [(30,30,'X'), (90,90,'X'), (120,120,'X'), (240,240,'X'), (270,270,'X'), (360,360,'O')]


# interate through the coords list and read the coordinates and the text of each tuple
for c in coords:
    l = Label(root, text=c[2])
    l.place(x=c[0], y=c[1])


# start a loop over the application
root.mainloop()

我正在使用Python3。如果您使用的是Python 2,则需要将
tkinter
更改为
tkinter
。如果您需要将我的代码移植到Python2上,那么这就可以了。

使用.place函数

比如下面

label = Label(root, text = 'i am placed')
#places the label in the following x and y coordinates
label.place(20,20)

您可以做的最好的事情是使用
place
method来设置X和Y坐标的参数

label = Label(root, text = 'Placed On X and Y')
label.place(x= X,y = Y)
或者另一种方法是使用
pack
方法,该方法将接受如下参数:

label.pack(padx = W,pady = H)

其中W和H是从中心点到坐标X和Y的距离。

要按坐标放置小部件,请查看几何体管理器。您可以尝试在给定坐标上放置带有所需字母的标签小部件。因为这可能变得有点丑陋和无用,你可能会考虑使用完全不同的方法,比如PyPosiy(应该能够解决你的任务,但我从来没有使用过它)。对我来说,这看起来不仅仅是一个游戏,而不是一个GUI任务,因为它或多或少是对象的动态渲染。但是,如果您提供一些示例坐标,我可以尝试一下,如果您仍然卡住了…您可以使用
root.after()
频繁调用函数并更新map-请参阅:@albert让我们假设12012090,9030,30,并在所有emOkay上放置X。但到目前为止你都试过什么?
label.pack(padx = W,pady = H)