在画布上拖动小部件时更新缓慢

所以我正在使用Python 3.7和tkinter。我希望能够在更大的画布上拖动框架或画布。我将代码放在一起,效果很好。问题是拖动看起来不是特别好。假设我将一个小部件拖动到右侧-在移动时失去了右侧。我停下来时当然会回来,但是这里肯定有一个问题。如果向下拖动,我会立即失去底侧。而且我拖动得越快,丢失的东西就越多。

我想知道这是否只是我的想象力,但是我能够在边框上添加边框并进行了尝试。由于边框是另一种颜色,因此我可以看到它在拖动过程中是否“消失”。是的,它确实。

肯定有办法使它看起来更...不好? tkinter甚至是正确的方法吗?我真正想要的是能够在更大的画布上拖动框架(或画布)并使它看起来有些平滑。但这确实很明显,我觉得应该解决。

根据要求,拖动代码:

class CanvasDragManager():
    def __init__(self,canvasParent):
        self.InitialX = 0
        self.InitialY = 0
        self.CanvasParent = canvasParent
        self.CanvasWidgetID = -1

    def addDraggable(self,widget,canvas_id):
        widget.bind("<ButtonPress-1>",self.on_start)
        widget.bind("<B1-Motion>",self.on_drag)
        widget.bind("<ButtonRelease-1>",self.on_drop)
        self.CanvasWidgetID = canvas_id

    def on_start(self,event):
        self.InitialX = event.x
        self.InitialY = event.y

    def on_drag(self,event):
        canvasX,canvasY = self.CanvasParent.coords(self.CanvasWidgetID)
        dragX = (event.x + canvasX) - self.InitialX
        dragY = (event.y + canvasY) - self.InitialY
        self.CanvasParent.coords(self.CanvasWidgetID,dragX,dragY)

    def on_drop(self,event):
        print('Dropped!')
o919977230 回答:在画布上拖动小部件时更新缓慢

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2957489.html

大家都在问