Advertisement
shh_algo_PY

Celeste - Kivy

Mar 11th, 2023
619
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.09 KB | None | 0 0
  1. # write your app here
  2. from kivy.app import App
  3. from kivy.uix.screenmanager import ScreenManager, Screen
  4. from kivy.uix.boxlayout import BoxLayout
  5. from kivy.uix.label import Label
  6. from kivy.uix.button import Button
  7. from kivy.uix.textinput import TextInput
  8. from kivy.core.window import Window
  9. from kivy.uix.scrollview import ScrollView
  10. from instructions import txt_instruction, txt_test1, txt_test2, txt_test3, txt_sits
  11. from ruffier import test
  12.  
  13. age = 7
  14. name = ""
  15. p1, p2, p3 = 0, 0, 0
  16.  
  17. class InstrScr(Screen):
  18.     def __init__(self, **kwargs):
  19.         super().__init__(**kwargs)
  20.         instr = Label(text=txt_instruction)
  21.         lbl1 = Label(text='Enter the name:', halign='right')
  22.         self.in_name = TextInput(multiline=False)
  23.         lbl2 = Label(text='Enter the age:', halign='right')
  24.         self.in_age = TextInput(text='7', multiline=False)
  25.         self.btn = Button(text='Start', size_hint=(0.3, 0.2), pos_hint={'center_x': 0.5})
  26.         self.btn.on_press = self.next
  27.         line1 = BoxLayout(size_hint=(0.8, None), height='30sp')
  28.         line2 = BoxLayout(size_hint=(0.8, None), height='30sp')
  29.         line1.add_widget(lbl1)
  30.         line1.add_widget(self.in_name)
  31.         line2.add_widget(lbl2)
  32.         line2.add_widget(self.in_age)
  33.         outer = BoxLayout(orientation='vertical', padding=8, spacing=8)
  34.         outer.add_widget(instr)
  35.         outer.add_widget(line1)
  36.         outer.add_widget(line2)
  37.         outer.add_widget(self.btn)
  38.         self.add_widget(outer)
  39.  
  40.     def next(self):
  41.             global name
  42.             name = self.in_name.text
  43.             self.manager.current = 'pulse1'
  44.  
  45. class PulseScr(Screen):
  46.     def __init__(self, **kwargs):
  47.         super().__init__(**kwargs)
  48.        
  49.         instr = Label(text=txt_test1)
  50.        
  51.         line = BoxLayout(size_hint=(0.8, None), height='30sp')
  52.    
  53.         lbl_result = Label(text='Enter the result:', halign='right')
  54.         self.in_result = TextInput(text='0', multiline=False)
  55.        
  56.         line.add_widget(lbl_result)
  57.         line.add_widget(self.in_result)
  58.    
  59.         self.btn = Button(text='Next', size_hint=(0.3, 0.2), pos_hint={'center_x': 0.5})
  60.         self.btn.on_press = self.next
  61.    
  62.         outer = BoxLayout(orientation='vertical', padding=8, spacing=8)
  63.         outer.add_widget(instr)
  64.         outer.add_widget(line)
  65.         outer.add_widget(self.btn)
  66.         self.add_widget(outer)
  67.    
  68.     def next(self):
  69.         global p1
  70.         p1 = int(self.in_result.text)
  71.         self.manager.current = 'sits'
  72.  
  73. class CheckSits(Screen):
  74.     def __init__(self, **kwargs):
  75.         super().__init__(**kwargs)
  76.    
  77.         instr = Label(text=txt_sits)
  78.    
  79.         self.btn = Button(text='Next', size_hint=(0.3, 0.2), pos_hint={'center_x': 0.5})
  80.         self.btn.on_press = self.next
  81.    
  82.         outer = BoxLayout(orientation='vertical', padding=8, spacing=8)
  83.         outer.add_widget(instr)
  84.         outer.add_widget(self.btn)
  85.         self.add_widget(outer)
  86.    
  87.     def next(self):
  88.         self.manager.current = 'pulse2'
  89.  
  90. class PulseScr2(Screen):
  91.     def __init__(self, **kwargs):
  92.         super().__init__(**kwargs)
  93.    
  94.         instr = Label(text=txt_test3)
  95.    
  96.         line1 = BoxLayout(size_hint=(0.8, None), height='30sp')
  97.    
  98.         lbl_result1 = Label(text='Result:', halign='right')
  99.    
  100.         self.in_result1 = TextInput(text='0', multiline=False)
  101.    
  102.         line1.add_widget(lbl_result1)
  103.         line1.add_widget(self.in_result1)
  104.         line2 = BoxLayout(size_hint=(0.8, None), height='30sp')
  105.    
  106.         lbl_result2 = Label(text='Result after rest:', halign='right')
  107.    
  108.         self.in_result2 = TextInput(text='0', multiline=False)
  109.    
  110.         line2.add_widget(lbl_result2)
  111.         line2.add_widget(self.in_result2)
  112.    
  113.         self.btn = Button(text='Finalise', size_hint=(0.3, 0.2), pos_hint={'center_x': 0.5})
  114.         self.btn.on_press = self.next
  115.    
  116.         outer = BoxLayout(orientation='vertical', padding=8, spacing=8)
  117.         outer.add_widget(instr)
  118.         outer.add_widget(line1)
  119.         outer.add_widget(line2)
  120.         outer.add_widget(self.btn)
  121.         self.add_widget(outer)
  122.    
  123.     def next(self):
  124.         global p2, p3
  125.         p2 = int(self.in_result1.text)
  126.         p3 = int(self.in_result2.text)
  127.         self.manager.current = 'result'
  128.  
  129. class Result(Screen):
  130.     def __init__(self, **kwargs):
  131.         super().__init__(**kwargs)
  132.        
  133.         self.outer = BoxLayout(orientation='vertical', padding=8, spacing=8)
  134.         self.instr = Label(text = '')
  135.         self.outer.add_widget(self.instr)
  136.         self.add_widget(self.outer)
  137.         self.on_enter = self.before
  138.    
  139.     def before(self):
  140.         global name
  141.         self.instr.text = name + '\n' + test(p1, p2, p3, age)
  142.  
  143. class HeartCheck(App):
  144.     def build(self):
  145.         sm = ScreenManager()
  146.         sm.add_widget(InstrScr(name='instr'))
  147.         sm.add_widget(PulseScr(name='pulse1'))
  148.         sm.add_widget(CheckSits(name='sits'))
  149.         sm.add_widget(PulseScr2(name='pulse2'))
  150.         sm.add_widget(Result(name='result'))
  151.         return sm
  152.  
  153. app = HeartCheck()
  154. app.run()
  155.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement