如何为Kivy中的窗口移动事件编写处理程序?

1 投票
1 回答
955 浏览
提问于 2025-04-18 10:42

我想写一个处理窗口移动事件的函数,适用于Windows和Linux系统。

我需要这个功能来重置我的应用程序的行为,因为当我拖动窗口时,所有的Clock.schedules都会停止或暂停,而在放开窗口后,动画和计划就不能正常开始了。窗口移动时出现的问题倒没关系,但之后应用程序应该能正确重启。

这段代码是处理窗口大小变化的:

class DemoApp(App):
    def build(self):
        def win_cb(window, width, height):
           print 'resizing'

        Window.bind(on_resize=win_cb)

有没有类似于on_move的东西?我在API文档中没有看到类似的内容。

1 个回答

1

不,Kivy没有办法直接获取当前窗口的位置。虽然通过直接使用窗口的后端(比如pygame)可能可以做到,但这样做不太适合不同平台使用,而且有点像是绕过正常方式的黑科技。

不过,你这里肯定还有其他问题。我的动画和时钟调度在移动和调整窗口大小时都运行得很好。你可能需要再发一个问题,问问为什么你的调度会出问题,因为这不是正常的情况。

撰写回答