Кликер на 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()
Как решить такие проблемы самому?
Сейчас я вам объясню что и как надо проверить код, перед тем как задать вопрос.
- Проверьте как правильно вы присвоили переменные
- Прочитайте каждую строчку и подумайте как машина должна её выполнить
- Посмотрите ошибку и вбейте в гугл и посмотрите как её решают другие люди
- Перевидите ошибку в переводчику и поймите что она обозначает
Если же вам это не помогло задайте вопрос правильно, и предоставьте какая появляеться ошибка если она есть