mirror of https://github.com/kivy/kivy.git
add touchdebug app to show everytouch with id, pos and class.
This commit is contained in:
parent
c2843397fe
commit
5401297126
|
@ -0,0 +1,50 @@
|
|||
from kivy.app import App
|
||||
from kivy.uix.widget import Widget
|
||||
from kivy.uix.label import Label
|
||||
from kivy.graphics import Color, Rectangle
|
||||
|
||||
class Touchdebug(Widget):
|
||||
def on_touch_down(self, touch):
|
||||
win = self.get_parent_window()
|
||||
ud = touch.userdata
|
||||
with self.canvas:
|
||||
ud['color'] = Color(1, 1, 1)
|
||||
ud['lines'] = (
|
||||
Rectangle(pos=(touch.x, 0), size=(1, win.height)),
|
||||
Rectangle(pos=(0, touch.y), size=(win.width, 1)))
|
||||
|
||||
ud['label'] = Label()
|
||||
self.update_touch_label(ud['label'], touch)
|
||||
self.add_widget(ud['label'])
|
||||
|
||||
def on_touch_move(self, touch):
|
||||
ud = touch.userdata
|
||||
ud['lines'][0].pos = touch.x, 0
|
||||
ud['lines'][1].pos = 0, touch.y
|
||||
ud['label'].pos = touch.pos
|
||||
self.update_touch_label(ud['label'], touch)
|
||||
|
||||
def on_touch_up(self, touch):
|
||||
ud = touch.userdata
|
||||
self.canvas.remove(ud['color'])
|
||||
self.canvas.remove(ud['lines'][0])
|
||||
self.canvas.remove(ud['lines'][1])
|
||||
self.remove_widget(ud['label'])
|
||||
|
||||
def update_touch_label(self, label, touch):
|
||||
label.text = 'ID: %s\nPos: (%d, %d)\nClass: %s' % (
|
||||
touch.id,
|
||||
touch.x,
|
||||
touch.y,
|
||||
touch.__class__.__name__
|
||||
)
|
||||
label.pos = touch.pos
|
||||
label.size = label.texture_size[0] + 20, label.texture_size[1] + 20
|
||||
|
||||
|
||||
class TouchdebugApp(App):
|
||||
def build(self):
|
||||
return Touchdebug()
|
||||
|
||||
if __name__ == '__main__':
|
||||
TouchdebugApp().run()
|
Loading…
Reference in New Issue