首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇薇毫不拖延地抓住触觉

奇薇毫不拖延地抓住触觉
EN

Stack Overflow用户
提问于 2016-06-21 00:39:57
回答 3查看 578关注 0票数 2

我试图在代码中实现touchtracer演示示例。这是原版

我意识到,由于必要的touch.grab(self)事件,跟踪只对延迟(按下按钮并按住按钮后)起作用。但是,我想看到的跟踪没有延迟,在第一次移动后立即。有没有办法在不干扰追踪的情况下做到这一点?

编辑:所谓的“延迟”,我指的是保持行动,以激活跟踪。目前,需要按+按住才能启动跟踪器。我想要能够追踪,没有‘搁置’。

EDIT2:我觉得有必要解释一下我的触屏追踪器和其他人的版本有什么不同,因为除了我之外,似乎没有人会面临这个问题。我嵌入了触摸屏代码在我的,并删除垂直/水平线和标签。所以我的版本只有痕迹。这是我的on_touch_down,on_touch_move和on_touch_up的样子。

代码语言:javascript
复制
def on_touch_down(self, touch):
    win = self.get_parent_window()
    ud = touch.ud
    ud['group'] = g = str(touch.uid)
    pointsize = 5
    ud['color'] = random()

    with self.canvas:
        Color(ud['color'], 1, 1, mode='hsv', group=g)
        ud['lines'] = [
            Point(points=(touch.x, touch.y), source='particle.png',
                  pointsize=pointsize, group=g)]
    touch.grab(self)
    return True

def on_touch_move(self, touch):
    if touch.grab_current is not self:
        return
    ud = touch.ud
    index = -1
    while True:
        try:
            points = ud['lines'][index].points
            oldx, oldy = points[-2], points[-1]
            break
        except:
            index -= 1

    if (oldx, oldy) == (touch.x, touch.y):
        return

    points = calculate_points(oldx, oldy, touch.x, touch.y)

    if points:
        try:
            lp = ud['lines'][-1].add_point
            for idx in range(0, len(points), 2):
                lp(points[idx], points[idx + 1])
        except GraphicException:
            pass

def on_touch_up(self, touch):
    if touch.grab_current is not self:
        return
    touch.ungrab(self)
    ud = touch.ud
    self.canvas.remove_group(ud['group'])
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-29 19:44:11

好吧,它看起来像一个库的版本问题。我在python2.7中使用了它,它构建在Ubuntu14.0上,运行在virtualbox上。我用库更新了与python和重新安装kivy相关的所有内容,并解决了问题。我仍然不确定是什么原因造成的,因为我没有在日志中收到任何错误消息,但看起来这是由于一个错误或没有正确安装的kivy。

票数 1
EN

Stack Overflow用户

发布于 2016-06-24 21:02:07

啊,我现在就拿到了!所以你想要画悬停-不需要按下按钮-类似于html/css :hover,对吗?

有一个人为此做出了行为,但那个档案(+ 备份,以防它消失)是LGPL,所以我不知道你应该如何对待它。但是,我确信许可证不能禁止您执行框架允许的基本操作,所以.把它拆开,你就可以走了。

票数 0
EN

Stack Overflow用户

发布于 2020-10-08 03:05:38

我遇到了这个问题,结果是"ScrollView“及其所有子级都有一个内置的延迟来检查它是快速触摸还是拖动,您可以通过手动将延迟设置为零来修复这个问题:

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

https://stackoverflow.com/questions/37933920

复制
相关文章

相似问题

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