mirror of https://github.com/kivy/kivy.git
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
|
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()
|