Untitled

 avatar
unknown
plain_text
2 years ago
1.8 kB
10
Indexable
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout

def dodle():
    pass


class Btn(Button):
    def __init__(self, funks, **kwargs):
        super().__init__(**kwargs)
        self.funks = funks

        self.turnOn = False
        self.background_color = [1, 0, 0, 1]

    def on_press(self):
        for one_funk in self.funks:
            one_funk()
        self.switch()

    def switch(self):
        if self.turnOn:
            self.background_color = [1, 0, 0, 1]
        else:
            self.background_color = [0, 1, 0, 1]

        self.turnOn = not self.turnOn


class PuzzleScreen(Screen):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        gl = GridLayout(cols=2, spacing=8, padding=8)

        self.bt1 = Btn(text="1", funks=[])
        self.bt2 = Btn(text="2", funks=[self.bt1.switch])
        self.bt3 = Btn(text="3", funks=[self.bt2.switch])
        self.bt4 = Btn(text="4", funks=[self.bt3.switch])
        self.bt5 = Btn(text="5", funks=[self.bt1.switch])
        self.bt6 = Btn(text="6", funks=[self.bt2.switch])

        self.bt1.funks.append(self.bt5.switch)
        self.bt2.funks.append(self.bt6.switch)
        self.bt4.funks.append(self.bt6.switch)

        gl.add_widget(self.bt1)
        gl.add_widget(self.bt2)
        gl.add_widget(self.bt3)
        gl.add_widget(self.bt4)
        gl.add_widget(self.bt5)
        gl.add_widget(self.bt6)

        self.add_widget(gl)


class MyApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(PuzzleScreen())
        return sm


MyApp().run()
Editor is loading...
Leave a Comment