使用多个键绑定的Tkinter

2024-04-26 22:58:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经做了一个程序,在点击时绘制一个椭圆(鼠标点击=起点,鼠标释放=终点),如下面的代码所示,我想添加if条件:当在绘制过程中按下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键然后画一个圆呢?你知道吗


Tags: eventifshiftbindtype绘制coords鼠标
1条回答
网友
1楼 · 发布于 2024-04-26 22:58:05

因此,我找到了一个名为keyboard的Python模块,并使用它解决了问题,添加了以下条件:

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

它会更改端点坐标,然后相应地绘制圆

相关问题 更多 >