Tkinter - Использование нескольких клавиш - PullRequest
0 голосов
/ 02 июня 2018

Я создал программу, которая рисует овал при щелчке (щелчок мыши = начальная точка, отпускание мыши = конечная точка), как показано в коде ниже, и я хотел бы добавить условие if: когда сдвиг клавиша нажата в середине чертежа, она выровняет координаты и, следовательно, в результате будет нарисован круг (или идеальный овал, если хотите).

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 голосов
/ 03 июня 2018

Итак, я нашел Python-модуль под названием клавиатура и решил свою проблему, используя его, добавив следующее условие:

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

, которое изменяет конечные координаты и позже соответственно рисует окружность

...