【问题标题】:Wait for second mouse click on canvas等待第二次鼠标点击画布
【发布时间】:2016-04-21 19:06:56
【问题描述】:

我在玩 Tkinter 和 Python,我想点击画布上的两个位置,然后在两个点之间画一条线。

使用 .bind() 方法,我可以轻松调用获取光标位置并设置第一个点的函数,但我不知道如何让该函数等待第二次鼠标单击。当然有解决方法,但我想知道是否可以让函数无限期地等待直到第二次点击。

【问题讨论】:

    标签: python tkinter tkinter-canvas


    【解决方案1】:

    无需等待。第一次点击设置标志,第二次点击检查标志

    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
    

    【讨论】:

    • @Bryan:应该是else:,而不是elee:,对吗?对我来说很清楚,但为了更好地阅读/完全正确的代码,这需要进行一次更改。
    猜你喜欢
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    相关资源
    最近更新 更多