Untitled

 avatar
unknown
plain_text
2 years ago
1.8 kB
4
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