Tkinter - 使用多个键绑定

时间:2018-06-02 18:28:44

标签: python tkinter key-bindings tkinter-canvas

我做了一个程序,点击一个椭圆形(鼠标点击=起始点,鼠标释放=终点),如下面的代码所示,我想添加条件:当在绘图中按下 shift 键,它将使坐标相等,因此,将绘制一个圆(或完美的椭圆,如果你愿意)。

from tkinter import *
def draw(event):
    if str(event.type)=='ButtonPress':
        canvas.old_coords=event.x,event.y
    elif str(event.type)=='ButtonRelease':
        x,y=event.x,event.y
        x1,y1=canvas.old_coords
        canvas.create_oval(x,y,x1,y1)
canvas=Canvas()
canvas.pack()
canvas.bind('<B1-Motion>',draw)
canvas.bind('<ButtonPress-1>',draw)
canvas.bind('<ButtonRelease-1>',draw)

我怎么可能考虑按 shift 然后画圆圈?

1 个答案:

答案 0 :(得分:0)

所以,我发现了一个名为 keyboard 的Python模块,我用它解决了我的问题,添加了这个条件:

if keyboard.is_pressed('shift'):
    if y>y1: y=y1+abs(x-x1)
    else: y=y1-abs(x-x1)

更改结束坐标,然后相应地绘制圆圈