Segítség python! Drag and drop GUI tkinter?
from tkinter import *
def drag_start(event):
----widget = event.widget
-<< widget.startX = event.x >>
-<< widget.startY = event.y >>
def drag_motion(event):
----widget = event.widget
-<< x = widget.winfo_x() - widget.startX + event.x >>
-<< y = widget.winfo_y() - widget.startY + event.y >>
----widget.place(x=x,y=y)
window = Tk()
label = Label(window,bg="red",width=10,height=5)
label.place(x=0,y=0)
label2 = Label(window,bg="blue",width=10,height=5)
label2.place(x=100,y=100)
label.bind("<Button-1>",drag_start)
label.bind("<B1-Motion>",drag_motion)
label2.bind("<Button-1>",drag_start)
label2.bind("<B1-Motion>",drag_motion)
window.mainloop()
Van itt ez a kód, ami annyit csinál, hogy megfogok valamit és egy windowon belül arrébb tudom húzni. Van az a négy sor amit bejelöltem
<< így >>
és ott nem értem, hogy az widget.startX, és a widget.startY hogy került át az egyik függvényből a másikba
Na jó még sincs meg teljesen.
Nekem python 3.10-em van, de ez a kód egy régebbi verzión íródott. És ott volt egy olyan, hogy az elején még nem volt ott az a sor hogy widget=event.widget, és a többi sorban a widget helyére label (legyen piros négyzet) volt írva, ezért ha a label2-t (kék négyzet) próbáltam volna meg áthelyezni, akkor is a piros négyzetet helyezte át, hiszen a functionökben az volt írva. Ezt így ahogy van megírtam magamnak, és arra jöttem rá, hogy ha a widget = event.widget sor nincs ott akkor azt amit bejelöltem, az nem fog megvalósulni. Lehetséges hogy ez azért van mert egy újabb verziót használok, és ennek a sornak muszáj ott lennie? Vagy teljesen hülyeség amit leírtam?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!