我正在研究Lego Mindstorms项目,我们创建了一个可用于控制机器人的GUI。我需要做的是创建一些能够在每次移动后显示机器人位置的东西。我正在使用画布绘制一个矩形,然后显示一个显示机器人当前位置的点。我有一大堆代码,但我只是向你展示了一小部分与我的问题相关的代码。Tkinter GUI画布
from Tkinter import *
class App:
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.button = Button(frame, text="Move", command=lambda: do_move())
self.button.pack(side=TOP)
self.canvas = Canvas(master, width=300, height=450)
self.canvas.place(x=250, y=550)
self.canvas.create_rectangle(0, 0, 300, 450, fill="white")
self.canvas.create_oval(150, 300, 160, 310, fill="blue", tags="Position")
x, y = self.canvas.coords("Position")
x = int(x)
y = int(y)
x2 = self.canvas.canvasx(self.x)
y2 = self.canvas.canvasy(self.y)
x2 = int(x2)
y2 = int(y2)
def move_forward():
self.canvas.move(Position, x2, y2)
def move_backwards():
self.canvas.move(Position, ,)
root = Tk()
app = App(root)
root.title("Mindstorms GUI")
root.geometry("800x1200")
root.mainloop()
root.destroy()
对于我有一个按钮的移动功能,我选择一个值,该值将向前/向后移动机器人。当机器人移动时,我还想在画布上移动我的蓝色圆圈。 X和Y是圆圈当前位置的坐标,关于X2和Y2的其余部分取自另一个位置。我不是很确定为什么你必须写x = int(x),我真的不了解X2和Y2的部分。关于如何编写剩余代码的任何解释和建议?
我在最后定义的第一个新功能将与我的移动按钮一起使用,以便我有两个按钮命令。当我点击按钮时,位置圆也将被移动到新的坐标。我还需要写一个地方,我的移动函数使用的单位的具体值等于例如在我的画布中移动5个坐标。有关如何做到这一点的任何提示?
我希望你能理解我的任务和我的配方。任何帮助表示赞赏!