To, co próbuję zrobić, to kliknąć dwukrotnie obszar roboczy i uzyskać event.x i event.y dla obu kliknięć myszą, aby móc użyć go do rysowania prymitywów.

Chciałbym użyć dwóch zestawów wartości zdarzenia do obliczenia odległości i użyć jej jako promienia do narysowania okręgu.

W tej chwili jestem w stanie go zdobyć tylko za jednym kliknięciem.

def leftClick(event=None):
    print("left",event.x,event.y)

c.bind("<Button-1>",leftClick)
0
PyWalker2797 16 grudzień 2019, 05:44
1
Twój program obsługi zdarzeń będzie musiał mieć „stan”, aby wiedzieć, czy kliknięcie jest pierwszym czy drugim. Jeśli uczynisz go częścią klasy, może przechowywać współrzędne pierwszego kliknięcia jako atrybuty self.
 – 
martineau
16 grudzień 2019, 06:00
1
Zamiast dwóch izolowanych kliknięć myszą, może być lepiej, gdy użytkownik przesunie mysz przyciskiem w dół między dwiema pozycjami zwanymi „przeciągnij i upuść” — możesz nawet narysować tymczasowe okręgi pokazujące bieżący rozmiar zdefiniowany podczas tego działania. Tkinter nie ma bezpośredniego wsparcia w tym zakresie, więc zobacz Jak stworzyć interfejs Drag and Drop? kilka pomysłów na jego wdrożenie.
 – 
martineau
16 grudzień 2019, 10:23
Brzmi nieźle, bardzo dziękuję
 – 
PyWalker2797
16 grudzień 2019, 16:37

1 odpowiedź

Możesz spróbować go związać

c.bind('<Double-Button-1>', function)

I zdefiniuj funkcję zgodnie ze swoimi wymaganiami

0
Hardik Jain 16 grudzień 2019, 08:41
W jaki sposób powiązanie z tym zdarzeniem zapewni dwa zestawy wartości zdarzenia x i y?
 – 
martineau
16 grudzień 2019, 10:10