Untitled
unknown
plain_text
23 days ago
3.5 kB
2
Indexable
Never
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 class QuestionScr(Screen): def __init__(self, name='question_1',next_screen_name='question_2', quest_text='',answers=[],right_answer_num=0): super().__init__(name=name) self.right_answer_num = right_answer_num self.next_screen_name = next_screen_name txt = Label(text=quest_text) self.btn = Button(text=answers[0]) self.btn2 = Button(text=answers[1]) self.btn3 = Button(text=answers[2]) self.btn4 = Button(text=answers[3]) self.buttons = [self.btn,self.btn2,self.btn3,self.btn4] self.btn.on_press = self.on_btn1 self.btn2.on_press = self.on_btn2 self.btn3.on_press = self.on_btn3 self.btn4.on_press = self.on_btn4 self.layout = BoxLayout(orientation="vertical") self.layout.add_widget(txt) self.layout.add_widget(self.btn) self.layout.add_widget(self.btn2) self.layout.add_widget(self.btn3) self.layout.add_widget(self.btn4) self.add_widget(self.layout) def on_btn1(self): if self.right_answer_num != 0: self.btn.background_color = [1, 0, 0, 1] self.buttons[self.right_answer_num].background_color = [0, 1, 0, 1] self.show_btn_next() def on_btn2(self): if self.right_answer_num != 1: self.btn2.background_color = [1, 0, 0, 1] self.buttons[self.right_answer_num].background_color = [0, 1, 0, 1] self.show_btn_next() def on_btn3(self): if self.right_answer_num != 2: self.btn3.background_color = [1, 0, 0, 1] self.buttons[self.right_answer_num].background_color = [0, 1, 0, 1] self.show_btn_next() def on_btn4(self): if self.right_answer_num != 3: self.btn4.background_color = [1, 0, 0, 1] self.buttons[self.right_answer_num].background_color = [0, 1, 0, 1] self.show_btn_next() def show_btn_next(self): self.btn_next = Button(text='следующий вопрос') self.btn_next.on_press = self.next self.layout.add_widget(self.btn_next) def next(self): self.manager.transition.direction = 'left' self.manager.current = self.next_screen_name class MyApp(App): def build(self): sm = ScreenManager() sm.add_widget(QuestionScr(name='question_1', next_screen_name='question_2', quest_text='Фамилия известного ютюбера Дима...?',answers=["Масленников","Пряников","Сметанкин","Буря"],right_answer_num=0)) sm.add_widget(QuestionScr(name='question_2', next_screen_name='question_3', quest_text='Дима Масленников делал ролик на тему:',answers=["Киси Миси и Хаги Ваги","Рондо и Кола","Перевал Дятлова","Разработка на Python"],right_answer_num=2)) sm.add_widget(QuestionScr(name='question_3', next_screen_name='question_3', quest_text='Сколько примерно подписчиков у Димы Масленникова',answers=["100+","Более 16 миллионов","Меньше 10.000","1 - 2 миллиона"],right_answer_num=1)) return sm app = MyApp() app.run()
Leave a Comment