Кликер на Python Kivy

я решил написать кликер на Python Kivy, у меня есть исходник:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label

class MainApp(App):
    def build(self):
        main_layout = BoxLayout()
        self.label = Label(text = "", size_hint = (.7, .9), pos_hint = {'center_x': 0.5, 'center_y': 0.7})
        btn = Button(text = "Click", size_hint = (.5, .1), pos_hint = {'top_x': 0.5, 'top_y': 0.5})
        btn.bind(on_press=self.on_button_press)
        main_layout.add_widget(self.label)
        main_layout.add_widget(btn)
        return main_layout

    def on_button_press(self, instance):
        global i
        i = self.label.text = "Clicked " + str(i + 1)
        
            

if __name__ == '__main__':
    app = MainApp()
    app.run()

но клик у меня не работает, как решить эту проблему?


Ответы (1 шт):

Автор решения: Іван Шнір

Вы просто забыли правильно объявить переменную i

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label

class MainApp(App):
    i = 0
    def build(self):
        main_layout = BoxLayout()
        self.label = Label(text = "", size_hint = (.7, .9), pos_hint = {'center_x': 0.5, 'center_y': 0.7})
        btn = Button(text = "Click", size_hint = (.5, .1), pos_hint = {'top_x': 0.5, 'top_y': 0.5})
        btn.bind(on_press=self.on_button_press)
        main_layout.add_widget(self.label)
        main_layout.add_widget(btn)
        return main_layout

    def on_button_press(self, instance):
        self.i += 1
        self.label.text = "Clicked " + str(self.i + 1)
        
            

if __name__ == '__main__':
    app = MainApp()
    app.run()

Как решить такие проблемы самому?

Сейчас я вам объясню что и как надо проверить код, перед тем как задать вопрос.

  1. Проверьте как правильно вы присвоили переменные
  2. Прочитайте каждую строчку и подумайте как машина должна её выполнить
  3. Посмотрите ошибку и вбейте в гугл и посмотрите как её решают другие люди
  4. Перевидите ошибку в переводчику и поймите что она обозначает

Если же вам это не помогло задайте вопрос правильно, и предоставьте какая появляеться ошибка если она есть

→ Ссылка