【发布时间】:2016-04-21 19:06:56
【问题描述】:
我在玩 Tkinter 和 Python,我想点击画布上的两个位置,然后在两个点之间画一条线。
使用 .bind() 方法,我可以轻松调用获取光标位置并设置第一个点的函数,但我不知道如何让该函数等待第二次鼠标单击。当然有解决方法,但我想知道是否可以让函数无限期地等待直到第二次点击。
【问题讨论】:
标签: python tkinter tkinter-canvas
我在玩 Tkinter 和 Python,我想点击画布上的两个位置,然后在两个点之间画一条线。
使用 .bind() 方法,我可以轻松调用获取光标位置并设置第一个点的函数,但我不知道如何让该函数等待第二次鼠标单击。当然有解决方法,但我想知道是否可以让函数无限期地等待直到第二次点击。
【问题讨论】:
标签: python tkinter tkinter-canvas
无需等待。第一次点击设置标志,第二次点击检查标志
class Example(...):
def __init__(...):
self.first_coord = None
...
canvas.bind("<1>", self.on_click)
def on_click(self, event):
if self.first_coord is None:
self.first_coord = (event.x, event.y)
else:
second_coord = (event.x, event.y)
<draw the line here>
self.first_coord = None
【讨论】:
else:,而不是elee:,对吗?对我来说很清楚,但为了更好地阅读/完全正确的代码,这需要进行一次更改。