Прежде всего, это мой текущий код, его основные части:
class WindowDraggable():
x = 1
y = 1
def __init__(self,label):
label.bind('<ButtonPress-1>',self.StartMove);
label.bind('<ButtonRelease-1>',self.StopMove);
label.bind('<B1-Motion>',self.OnMotion);
def StartMove(self,event):
self.x = event.x
self.y = event.y
def StopMove(self,event):
self.x = None
self.y = None
def OnMotion(self,event):
deltaX = event.x - self.x
deltaY = event.y - self.y
self.x = root.winfo_x() + deltaX
self.y = root.winfo_y() + deltaY
root.geometry("+%sx+%s" % (self.x,self.y))
#root is my window:
root = Tk()
#This is how I assign the class to label
WindowDraggable(label)
#All imports
from Tkinter import *
from PIL import Image, ImageTk
import sys
import re
То, что я пытаюсь сделать, это; Сделайте окно перетаскиваемым за ручку, в этом случае label
. Я не могу действительно описать, как он ведет себя сейчас, но он перемещает окно, просто не следуя за мышью.
Пожалуйста, потерпите меня, так как я новичок в Python. Любая помощь приветствуется :) Переписать класс хорошо, я знаю, что он действительно плохо написан.