Python - Как установить условия для привязки клавиш - PullRequest
0 голосов
/ 30 апреля 2018

недавно я нашел этот фрагмент кода здесь ( Как нарисовать линию, следуя вашим координатам мыши с помощью tkinter? ):

import tkinter as tk

def draw(event):
    x, y = event.x, event.y
    if canvas.old_coords:
        x1, y1 = canvas.old_coords
        canvas.create_line(x, y, x1, y1)
    canvas.old_coords = x, y

def draw_line(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_line(x, y, x1, y1)

def reset_coords(event):
    canvas.old_coords = None

root = tk.Tk()

canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()
canvas.old_coords = None

root.bind('<ButtonPress-1>', draw_line)
root.bind('<ButtonRelease-1>', draw_line)

#root.bind('<B1-Motion>', draw)
#root.bind('<ButtonRelease-1>', reset_coords)

root.mainloop()

и мне действительно любопытно, как заставить эти функции работать, например, например. выбранный вариант. Допустим, я бы хотел выбрать, когда рисовать от руки и когда рисуют линии. Я попытался использовать одно целое число для сравнения, а затем определить условия для привязок, например:

if c==1:
    root.bind('<ButtonPress-1>', draw_line)
    root.bind('<ButtonRelease-1>', draw_line)
elif c==2:
    root.bind('<B1-Motion>', draw)
    root.bind('<ButtonRelease-1>', reset_coords)

но это не похоже на работу. У вас есть идеи, как создать условия для привязки?

1 Ответ

0 голосов
/ 01 мая 2018

Итак, как указано в разделе комментариев, я создал функцию, которая объединила операции двух исходных функций, а затем связал все используемые ключевые символы с новой функцией

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...