from kivy.app import App from kivy.uix.button import Button from kivy.properties import NumericProperty, StringProperty class OneTimeButton(Button): count = 0 index = NumericProperty() def __init__(self, **kwargs): super().__init__(**kwargs) self.index = OneTimeButton.count OneTimeButton.count += 1 def on_press(self): self.disabled = True print(f'One-time {self.index}') class GuessingButton(Button): hidden_text = StringProperty('') def __init__(self, hidden_text, **kwargs): super().__init__(**kwargs) self.hidden_text = hidden_text def on_press(self): if self.text == '': self.text = self.hidden_text else: self.text = '' class DemoApp(App): def build(self): for i in range(5): self.root.add_widget(OneTimeButton()) for i in range(5): self.root.add_widget(GuessingButton(f'Guess {i}')) if __name__ == '__main__': app = DemoApp() app.run()