【发布时间】:2020-06-26 19:40:16
【问题描述】:
我有一个视频播放器应用程序,它下面有一个图表显示。我的视频播放器定期获取帧,但是当我移动鼠标时它会冻结,通过打印正在发生的事情我可以看到主循环没有调用任何东西
我尝试为每个小部件on_mouse_pos 事件打印一些文本,但没有一个被触发,所以我真的不知道我应该去哪里看。使用记录器模块,我可以看到没有鼠标事件,所以我什至不确定鼠标事件是记录器
我现在有几个小部件,所以我不确定在此处发布它们是否有用,但我很想听听反馈或有关此问题的任何想法
非常感谢
【问题讨论】:
-
没有看到一些代码很难掌握你的特殊情况,
-
通过整个窗口获取鼠标位置:Window.bind(mouse_pos=your_call_back_here)
-
嗯,我现在有几个文件和十几个小部件,所以我不确定我应该发布什么。最重要的是,我在我的小部件的每个 on_mouse_pos 上添加了一个显示,但是当我的鼠标移动时它们都不会被触发,所以我不确定是谁在捕捉它......
-
既然您评论说您的程序正在不断地获取帧,我感觉帧获取循环可能会干扰 kivy 事件循环,从而在执行需要很长时间才能响应的事情时阻塞接口或使用循环,您应该使用线程和时钟事件以避免阻塞 gui。
-
我使用了一个队列系统,它填充在一个单独的线程中,并且我的小部件与时钟模块一起调度以定期拉取它们。然而,我怀疑我是否正确使用了@mainthread 装饰器
标签: python python-3.x kivy kivy-language