【问题标题】:Tkinter - Using multiple key-bindsTkinter - 使用多个键绑定
【发布时间】:2018-06-02 18:28:43
【问题描述】:

我已经制作了一个程序,它在单击时绘制一个椭圆(鼠标单击=起点,鼠标释放=终点),如下面的代码所示,我想添加 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 然后画一个圆圈?

【问题讨论】:

    标签: python tkinter key-bindings tkinter-canvas


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多