Kivy应用程序无法识别笔记本电脑触摸板的触摸功能

时间:2013-10-18 12:34:08

标签: python click touch kivy

我一直在尝试使用本教程中的小部件http://kivy.org/docs/tutorials/firstwidget.html# 我无法对小部件进行任何触摸,它无法识别我的点击次数。如何将其作为触摸响应检测到我的点击次数? 这是我现在的代码,

from kivy.app import App
from kivy.uix.widget import Widget

class MyPaintWidget(Widget):
    def on_touch_down(self, touch):
        with self.canvas:
            Color(1, 1, 0)
            d = 30.
            Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d))

class MyPaintApp(App):
    def buil(self):
        return MyPaintWidget()

if __name__ == '__main__':
    MyPaintApp().run()

1 个答案:

答案 0 :(得分:1)

1)您有一个拼写错误,定义方法buil,它应该是build。这意味着该方法不会执行任何操作,因为它不会被调用,因此永远不会创建或显示绘制窗口小部件。

2)您不导入Color或Ellipse。即使上面的拼写错误正确,这也会引起on_touch_down方法的错误。

以下是适用于我的固定版本。也许这两个错误只是你粘贴到这里的错误,但它们肯定都打破了应用程序 - 第一个会导致你看到的行为。

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics.context_instructions import Color
from kivy.graphics.vertex_instructions import Ellipse

class MyPaintWidget(Widget):
    def on_touch_down(self, touch):
        with self.canvas:
            Color(1, 1, 0)
            d = 30.
            Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d))

class MyPaintApp(App):
    def build(self):
        return MyPaintWidget()

if __name__ == '__main__':
    MyPaintApp().run()