【发布时间】:2020-06-11 20:10:20
【问题描述】:
import tkinter as tk
field = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
class Game:
def click_coordinates(event):
x = str(event.x)
y = str(event.y)
print(x, y)
root = tk.Tk()
root.title("Tic Tac Toe")
root.geometry("304x304")
my_canvas = tk.Canvas(root, width=300, height=300, background="black")
my_canvas.grid(row=0, column=0)
my_canvas.create_line(100, 0, 100, 305, fill="white", width=3)
my_canvas.create_line(200, 0, 200, 305, fill="white", width=3)
my_canvas.create_line(0, 100, 305, 100, fill="white", width=3)
my_canvas.create_line(0, 200, 305, 200, fill="white", width=3)
my_canvas.bind("<Button-1>", click_coordinates)
root.mainloop()
if __name__ == "__main__":
game = Game()
我的问题是我想将鼠标坐标作为变量返回。 我试着写:
def click_coordinates(event):
x = str(event.x)
y = str(event.y)
mouse = x + ":" + y
return mouse
但我不知道如何使用其他函数访问此变量。如果我想从 click_coordinates() 函数调用另一个函数,我会收到一个错误,即我要调用的新函数的名称未定义。好像只能打印坐标了。
【问题讨论】:
-
您是否尝试将它们作为属性保存在您的班级中?
-
退货?将它们归还在哪里?您不能从回调中返回值。或者更准确地说,您可以返回一些内容,但运行回调的代码在大多数情况下会忽略返回的内容。
-
您需要使您的回调函数
click_coordinates()将信息存储在您的应用程序的其余部分可以访问的某个位置,例如某种类型的列表或某种其他类型的容器对象。