Я создаю приложение с Kivy GUI. Я хотел бы собрать некоторые данные с экрана, а затем сохранить эти данные для графика на последнем экране, называемом «вывод», возможно, с использованием matplotlib. Я действительно новичок в кодировании, и я не могу понять, как сохранить данные с экрана «LtpLayout», чтобы манипулировать ими с некоторой математикой (numpy) и отобразить результаты на последнем экране под названием «Вывод».
.py файл:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image, AsyncImage
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.screenmanager import ScreenManager
from kivy.uix.screenmanager import Screen
from kivy.uix.screenmanager import FadeTransition
from kivy.uix.gridlayout import GridLayout
from kivy.lang import Builder
from kivy.uix.textinput import TextInput
import matplotlib.pyplot as plt
##from Kivy-Garden.matplotlib.backend_kivyagg import FigureCanvasKivyAgg non lo trova
from kivy.properties import ObjectProperty
class Output(Screen):
pass
## pass
class MyLayout(Screen):
pass
class LtpLayout(Screen):
def SaveData(self):
PS1 = self.PS1.text
pass
class ControlloSchermi (ScreenManager):
pass
def build(self):
sm = ControlloSchermi()
class IntroApp(App):
def build(self):
return ControlloSchermi()
IntroApp().run()
и файл .kv:
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
<ControlloSchermi>
MyLayout:
LtpLayout:
Output:
<MyLayout>
name: "main"
BoxLayout:
orientation: 'vertical'
size: self.size
canvas.before:
Rectangle:
pos: self.pos
size: self.size
source: "digital brain.jpg"
Label:
text: "Digital Psychometrics"
font_size: 40
bold: True
Button:
on_release: app.root.current = "LTP"
font_size: 15
text: "ACCEDI"
bolf: True
pos_hint_y: 0.5
pos_hint: {'center_x': 0.5, 'center_y': .5}
size: 200, 50
size_hint_x: None
size_hint_y: None
background_normal: ''
background_color: (0, 1, 1, 1)
Label:
text: ''
pos_hint_y: 0.5
pos_hint: {'center_x': 0.5, 'center_y': .5}
size: 200, 50
size_hint_x: None
size_hint_y: None
<LtpLayout>
name: "LTP"
on_enter: PS1.focus = True
BoxLayout:
orientation: "vertical"
canvas.before:
Color:
rgba: 0.03,0.1,0.16,1
Rectangle:
pos: self.pos
size: self.size
BoxLayout:
size_hint_y: 0.1
orientation: "horizontal"
Label:
canvas.before:
Color:
rgba: 0.12, 0.47, 0.49,1
Rectangle:
pos: self.pos
size: self.size
text: "Tabella per l'inserimento degli input"
bold: True
font_size: 25
GridLayout:
padding: 40,10
cols: 5
size_hint_y: 0.8
Label:
text: "SCALE"
bold: True
font_size: 20
Label:
text: "Fase 1"
bold: True
Label:
text: "Fase 2"
bold: True
Label:
text: "Fase 3"
bold: True
Label:
text: "Fase 4"
bold: True
Label:
text: "Posture e sguardi"
size_hint_x: 2.2
TextInput:
id: PS1
hint_text: "Input"
multiline: False
on_text_validate: PS2.focus = True
TextInput:
id: PS2
multiline: False
hint_text: "Input"
on_text_validate: PS3.focus = True
TextInput:
id: PS3
multiline: False
hint_text: "Input"
on_text_validate: PS4.focus = True
TextInput:
id: PS4
multiline: False
hint_text: "Input"
on_text_validate: IP1.focus = True
Label:
text: "Inclusione partners"
TextInput:
id: IP1
hint_text: "Input"
multiline: False
on_text_validate: IP2.focus = True
TextInput:
id: IP2
multiline: False
hint_text: "Input"
on_text_validate: IP3.focus = True
TextInput:
id: IP3
multiline: False
hint_text: "Input"
on_text_validate: IP4.focus = True
TextInput:
id: IP4
multiline: False
hint_text: "Input"
on_text_validate: IR1.focus = True
Label:
text: "Implicazione ruoli"
TextInput:
id: IR1
hint_text: "Input"
multiline: False
on_text_validate: IR2.focus = True
TextInput:
id: IR2
multiline: False
hint_text: "Input"
on_text_validate: IR3.focus = True
TextInput:
id: IR3
multiline: False
hint_text: "Input"
on_text_validate: IR4.focus = True
TextInput:
id: IR4
multiline: False
hint_text: "Input"
on_text_validate: ST1.focus = True
Label:
text: "Struttura e tempo"
TextInput:
id: ST1
hint_text: "Input"
multiline: False
on_text_validate: ST2.focus = True
TextInput:
id: ST2
multiline: False
hint_text: "Input"
on_text_validate: ST3.focus = True
TextInput:
id: ST3
multiline: False
hint_text: "Input"
on_text_validate: ST4.focus = True
TextInput:
id: ST4
multiline: False
hint_text: "Input"
on_text_validate: Cocos1.focus = True
Label:
text: "Co-costruzione"
TextInput:
id: Cocos1
hint_text: "Input"
multiline: False
on_text_validate: Cocos2.focus = True
TextInput:
id: Cocos2
multiline: False
hint_text: "Input"
on_text_validate: Cocos3.focus = True
TextInput:
id: Cocos3
multiline: False
hint_text: "Input"
on_text_validate: Cocos4.focus = True
TextInput:
id: Cocos4
multiline: False
hint_text: "Input"
on_text_validate: Inq1.focus = True
Label:
text: "Inquadramento"
TextInput:
id: Inq1
hint_text: "Input"
multiline: False
on_text_validate: Inq2.focus = True
TextInput:
id: Inq2
multiline: False
hint_text: "Input"
on_text_validate: Inq3.focus = True
TextInput:
id: Inq3
multiline: False
hint_text: "Input"
on_text_validate: Inq4.focus = True
TextInput:
id: Inq4
multiline: False
hint_text: "Input"
on_text_validate: Cal1.focus = True
Label:
text: "Calore famigliare"
TextInput:
id: Cal1
hint_text: "Input"
multiline: False
on_text_validate: Cal2.focus = True
TextInput:
id: Cal2
multiline: False
hint_text: "Input"
on_text_validate: Cal3.focus = True
TextInput:
id: Cal3
multiline: False
hint_text: "Input"
on_text_validate: Cal4.focus = True
TextInput:
id: Cal4
multiline: False
hint_text: "Input"
on_text_validate: Val1.focus = True
Label:
text: "Validazione"
TextInput:
id: Val1
hint_text: "Input"
multiline: False
on_text_validate: Val2.focus = True
TextInput:
id: Val2
multiline: False
hint_text: "Input"
on_text_validate: Val3.focus = True
TextInput:
id: Val3
multiline: False
hint_text: "Input"
on_text_validate: Val4.focus = True
TextInput:
id: Val4
multiline: False
hint_text: "Input"
on_text_validate: Aute1.focus = True
Label:
text: "Autenticita"
TextInput:
id: Aute1
hint_text: "Input"
multiline: False
on_text_validate: Aute2.focus = True
TextInput:
id: Aute2
multiline: False
hint_text: "Input"
on_text_validate: Aute3.focus = True
TextInput:
id: Aute3
multiline: False
hint_text: "Input"
on_text_validate: Aute4.focus = True
TextInput:
id: Aute4
multiline: False
hint_text: "Input"
on_text_validate: Eac1.focus = True
Label:
text: "Ris. errori att. condivise"
TextInput:
id: Eac1
hint_text: "Input"
multiline: False
on_text_validate: Eac2.focus = True
TextInput:
id: Eac2
multiline: False
hint_text: "Input"
on_text_validate: Eac3.focus = True
TextInput:
id: Eac3
multiline: False
hint_text: "Input"
on_text_validate: Eac4.focus = True
TextInput:
id: Eac4
multiline: False
hint_text: "Input"
on_text_validate: Ecc1.focus = True
Label:
text: "Ris. errori camb. contesto"
TextInput:
id: Ecc1
hint_text: "Input"
multiline: False
on_text_validate: Ecc2.focus = True
TextInput:
id: Ecc2
multiline: False
hint_text: "Input"
on_text_validate: Ecc3.focus = True
TextInput:
id: Ecc3
multiline: False
hint_text: "Input"
on_text_validate: Ecc4.focus = True
TextInput:
id: Ecc4
multiline: False
hint_text: "Input"
on_text_validate: Sos1.focus = True
Label:
text: "Sostegno"
TextInput:
id: Sos1
hint_text: "Input"
multiline: False
on_text_validate: Sos2.focus = True
TextInput:
id: Sos2
multiline: False
hint_text: "Input"
on_text_validate: Sos3.focus = True
TextInput:
id: Sos3
multiline: False
hint_text: "Input"
on_text_validate: Sos4.focus = True
TextInput:
id: Sos4
multiline: False
hint_text: "Input"
on_text_validate: Conf1.focus = True
Label:
text: "Conflitto"
TextInput:
id: Conf1
hint_text: "Input"
multiline: False
on_text_validate: Conf2.focus = True
TextInput:
id: Conf2
multiline: False
hint_text: "Input"
on_text_validate: Conf3.focus = True
TextInput:
id: Conf3
multiline: False
hint_text: "Input"
on_text_validate: Conf4.focus = True
TextInput:
id: Conf4
multiline: False
hint_text: "Input"
on_text_validate: Coin1.focus = True
Label:
text: "Coinvolgimento"
TextInput:
id: Coin1
hint_text: "Input"
multiline: False
on_text_validate: Coin2.focus = True
TextInput:
id: Coin2
multiline: False
hint_text: "Input"
on_text_validate: Coin3.focus = True
TextInput:
id: Coin3
multiline: False
hint_text: "Input"
on_text_validate: Coin4.focus = True
TextInput:
id: Coin4
multiline: False
hint_text: "Input"
on_text_validate: Auto1.focus = True
Label:
text: "Autor./limiti/autonomia"
TextInput:
id: Auto1
hint_text: "Input"
multiline: False
on_text_validate: Auto2.focus = True
TextInput:
id: Auto2
multiline: False
hint_text: "Input"
on_text_validate: Auto3.focus = True
TextInput:
id: Auto3
multiline: False
hint_text: "Input"
on_text_validate: Auto4.focus = True
TextInput:
id: Auto4
multiline: False
hint_text: "Input"
## Focus sul pulsante di avvio on_text_validate: PS2.focus = True
BoxLayout:
padding: 10,10
orientation: "horizontal"
size_hint_y: 0.1
Label:
text: ""
size_hint_x: 0.69
Button:
on_release: app.root.current = "Output"
text: "Conferma"
size_hint_x: 0.2
Label:
text: ''
size_hint_x:0.01
Button:
text: "Annulla"
size_hint_x: 0.1
##on_release: on_release: root.clear_inputs()
<Output>:
name: "Output"
BoxLayout:
Label:
text: "Output"