Untitled
unknown
plain_text
2 years ago
3.5 kB
8
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
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()Editor is loading...
Leave a Comment