Как отследить событие мыши и покрасить сетку в киве - PullRequest
0 голосов
/ 14 июня 2019

Как нарисовать сетку и отследить мышь, где я буду менять цвет поля, где мышь зависает с помощью Kivy?

В настоящее время у меня есть код ниже, он еще не завершен, но есть некоторые проблемы. При нынешнем виде он просто отслеживает, где находится мышь, без какой-либо нарисованной сетки. Если я верну только макет, то будет нарисована сетка, но мышь не отслеживается.

import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button

class TouchInput(Widget):
    def on_touch_down(self, touch):
        print(touch)
    def on_touch_move(self, touch):
        print(touch) ## WILL ADD CHANGING COLORS HERE LATER
    def on_touch_up(self, touch):
        print("RELEASED!",touch)

class MyApp(App):
    def build(self):
        T = TouchInput()

        layout = GridLayout(cols=2)
        layout.add_widget(Button(text='Hello 1'))
        layout.add_widget(Button(text='World 1'))
        layout.add_widget(Button(text='Hello 2'))
        layout.add_widget(Button(text='World 2'))

        return T

if __name__ == "__main__":
    MyApp().run()

1 Ответ

1 голос
/ 14 июня 2019

Вы можете комбинировать свои TouchInput методы и GridLayout как:

import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button

class MyGrid(GridLayout):
    def on_touch_down(self, touch):
        print(touch)
    def on_touch_move(self, touch):
        print(touch) ## WILL ADD CHANGING COLORS HERE LATER
    def on_touch_up(self, touch):
        print("RELEASED!",touch)

class MyApp(App):
    def build(self):

        layout = MyGrid(cols=2)
        layout.add_widget(Button(text='Hello 1'))
        layout.add_widget(Button(text='World 1'))
        layout.add_widget(Button(text='Hello 2'))
        layout.add_widget(Button(text='World 2'))

        return layout

if __name__ == "__main__":
    MyApp().run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...