我一直在尝试使用本教程中的小部件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()
答案 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()