首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kivy - MotionEvent: on_mouse_pos

Kivy - MotionEvent: on_mouse_pos
EN

Stack Overflow用户
提问于 2018-07-14 18:00:23
回答 2查看 2.3K关注 0票数 2

kivy支持在MouseEvent上触发的mouse_pos更改而不按鼠标按钮吗?

我在文档中发现:

def on_motion(self,etype,motionevent):#将接收所有的运动事件。通过Window.bind(on_motion=on_motion) 您还可以通过观看mouse_pos.来收听鼠标位置的变化。

然而,我无法实现它。我成功地将其绑定并添加到on_motion函数'print('Hello‘),但它仅由按下类型事件触发。

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-15 03:05:41

解决方案

mouse_pos绑定到回调。详情请参阅示例。

代码语言:javascript
复制
Window.bind(mouse_pos=self.mouse_pos)

示例

main.py

代码语言:javascript
复制
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.core.window import Window


class MousePosDemo(BoxLayout):

    def __init__(self, **kwargs):
        super(MousePosDemo, self).__init__(**kwargs)
        self.label = Label()
        self.add_widget(self.label)
        Window.bind(mouse_pos=self.mouse_pos)

    def mouse_pos(self, window, pos):
        self.label.text = str(pos)


class TestApp(App):
    title = "Kivy Mouse Pos Demo"

    def build(self):
        return MousePosDemo()


if __name__ == "__main__":
    TestApp().run()

输出

票数 5
EN

Stack Overflow用户

发布于 2018-07-14 22:37:10

你真的想做:

代码语言:javascript
复制
Window.bind(mouse_pos=on_motion)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51342055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档