PYTHON,KIVY-从PYTHON文件更新以Kv文件编写的标签

PYTHON,KIVY-从PYTHON文件更新以Kv文件编写的标签,python,kivy,Python,Kivy,我想知道有没有一种方法可以从py文件更新MDLabel Kivy小部件。我试图将变量名Pacientes.PrimerNombre的MDLabel de值放入;此变量是从Txt文件中获取并放入该变量的。事实上,变量的赋值已经完成,但是当我访问下一个屏幕时,它并没有出现。我试过使用self.id。但不起作用;我在想,可能是因为MDLabel放在了NavigationDrawer或类似的地方,因为我使用self.id时会关闭它。它向我抛出AttributeError:“super”对象没有属性“ge

我想知道有没有一种方法可以从py文件更新MDLabel Kivy小部件。我试图将变量名Pacientes.PrimerNombre的MDLabel de值放入;此变量是从Txt文件中获取并放入该变量的。事实上,变量的赋值已经完成,但是当我访问下一个屏幕时,它并没有出现。我试过使用self.id。但不起作用;我在想,可能是因为MDLabel放在了NavigationDrawer或类似的地方,因为我使用self.id时会关闭它。它向我抛出AttributeError:“super”对象没有属性“getattr,我意识到我已经在我使用的每个MDLabel中放置了和id。 我将把我的代码留给你(好吧,不是全部代码,而是与我冲突的部分)。 感谢您的帮助!!!谢谢

Conmutador_Pacientes.py

from kivy.clock import Clock
from kivy.properties import ObjectProperty, StringProperty
from kivy.uix.screenmanager import Screen
from kivymd.uix.list import ThreeLineListItem

import Auxiliares.Archivos as a
from interfaces.pacientes.Pacientes import Pacientes


class Visual_Pacientes(Screen):
    # ape_nss = StringProperty()
    # ape_agre = StringProperty()
    ape_nome_uno = StringProperty()
    ape_nome_dos = StringProperty()
    ape_ape_pat = StringProperty()
    ape_ape_mat = StringProperty()

    def iniciar(self):
        self.ape_nome_uno = Pacientes.Primer_Nombre
        print(self.ape_nome_uno)
        self.ape_nome_dos = Pacientes.Segundo_Nombre
        self.ape_ape_pat = Pacientes.ApellidoPaterno
        self.ape_ape_mat = Pacientes.ApellidoMaterno


class Registro(Screen):
    ape_nss = ObjectProperty()
    ape_agre = ObjectProperty()
    ape_nome_uno = ObjectProperty()
    ape_nome_dos = ObjectProperty()
    ape_mat = ObjectProperty()
    ape_pat = ObjectProperty()

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        # self.ids.txt_nome_uno.text = Pacientes.Primer_Nombre
        # ape_nome_uno = Pacientes.Primer_Nombre
        # ape_nome_dos = Pacientes.Segundo_Nombre
        # ape_mat = Pacientes.ApellidoMaterno
        # ape_pat = Pacientes.ApellidoPaterno

    def regresar(self):
        print(self.manager.previous(), ": ", self.manager.current)

        if self.manager.previous() == 'pacientes_screen':
            self.manager.current = 'pacientes_screen'
        elif self.manager.previous() == 'visual_pacientes':
            self.manager.current = 'visual_pacientes'
        else:
            self.manager.current = 'visual_pacientes'


class Gestion(Screen):
    print('Gestor de Pacientes - Listado General')

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        Clock.schedule_once(self.create_list)

    def create_list(self, *args):
        dato = a.Consultar('./Pacientes.txt')
        for e in dato:
            elem = a.infoALista(str(e))
            x = 0
            for i in elem:
                self.ids.pacientes_list.add_widget(
                    ThreeLineListItem(text=elem[x][0],
                                      secondary_text=elem[x][1] + elem[x][2],
                                      tertiary_text=elem[x][3] + elem[x][4] + elem[x][4] + elem[x][5],
                                      on_release=self.on_click
                                      )
                )
                x += 1
            # print("elem: ", elem)

    def on_click(self, ThreeLineListItem):
        Pacientes.ID = ThreeLineListItem.text
        print("Paciente ID: ", Pacientes.ID)
        paciente = a.buscarArchivo(Pacientes.ID, "./Pacientes.txt")
        Pacientes.NSS = paciente[1]
        Pacientes.AgregadoMedico = paciente[2]
        Pacientes.Primer_Nombre = paciente[3]
        Pacientes.Segundo_Nombre = paciente[4]
        Pacientes.ApellidoMaterno = paciente[5]
        Pacientes.ApellidoPaterno = paciente[6]

        Visual_Pacientes.iniciar(self)
        self.manager.current = 'visual_pacientes'


class Datos(Screen):
    pass


class Antecedentes(Screen):
    pass


class Vitales(Screen):
    pass


class Auxiliares(Screen):
    pass


class Intensiva(Screen):
    pass


class Reportes(Screen):
    pass

以下是de Kv文件:

visual_pacientes.kv
#: include interfaces/pacientes/registros/Datos.kv
#: include interfaces/pacientes/registros/Auxiliares.kv
#: include interfaces/pacientes/registros/Antecedentes.kv
#: include interfaces/pacientes/registros/Intensiva.kv
#: include interfaces/pacientes/registros/Reportes.kv
#: include interfaces/pacientes/registros/Vitales.kv

#: include interfaces/pacientes/gestion/registro.kv

<Visual_Pacientes>:
  name: 'visual_pacientes'
  NavigationLayout:
    ScreenManager:
      Screen:
        name: "visual_pacientes"
        BoxLayout:
          orientation: 'vertical'

          MDToolbar:
            title: "Gestión del Paciente"
            elevation: 10
            left_action_items: [["menu", lambda x: nav_drawer_paciente.set_state()]]

          ScreenManager:
            id: scr_manager_paciente

            Datos:
              id: datos_paciente
              name: "datos_paciente"

            Antecedentes:
              id: antecedentes_paciente
              name: "antecedentes_paciente"

            Vitales:
              id: vitales_paciente
              name: "vitales_paciente"

            Auxiliares:
              id: auxiliares_paciente
              name: "auxiliares_paciente"

            Reportes:
              id: reportes_paciente
              name: "reportes_paciente"

            Intensiva:
              id: intensiva_paciente
              name: "intensiva_paciente"

    MDNavigationDrawer:
      id: nav_drawer_paciente

      BoxLayout:
        orientation: 'vertical'
        padding: "8dp"
        spacing: "8dp"

        #Image:
          #size_hint: None, None
          #size: "200dp", "200dp"
          #halign: 'center'
          #source: "Actos_de_Paz_I.jpg"

        BoxLayout:
          orientation: 'vertical'
          padding: "8dp"

          MDLabel:
            id: txt_nome_uno
            text: str(root.ape_nome_uno)
            text_size: self.width, None
            pos_hint: {"x": 0.5, "y": 0.5}
            color: 0,1,0,1
          MDLabel:
            id: txt_nome_dos
            text: root.ape_nome_dos
          MDLabel:
            id: txt_ape_pat
            text: root.ape_ape_pat
          MDLabel:
            id: txt_ape_mat
            text: root.ape_ape_mat

        ScrollView:
          MDList:
            OneLineIconListItem:
              text: root.ape_nome_uno
            OneLineIconListItem:
              text: "Datos Iniciales del Paciente"
              on_release:
                root.manager.current = "registro_screen"
                #"datos_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: "account"
            OneLineIconListItem:
              text: "Antecedentes Personales"
              on_release:
                scr_manager_paciente.current = "antecedentes_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'bottle-tonic-plus'
            OneLineIconListItem:
              text: 'Registro de Signos Vitales'
              on_release:
                scr_manager_paciente.current = "vitales_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'bottle-tonic-plus'
            OneLineIconListItem:
              text: 'Auxiliares Diagnósticos'
              on_release:
                scr_manager_paciente.current = "auxiliares_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'adjust'

            OneLineIconListItem:
              text: 'Herramientas de Terapia Intensiva'
              on_release:
                scr_manager_paciente.current = "intensiva_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'cogs'

            OneLineIconListItem:
              text: 'Reportes y Notas Médicas'
              on_release:
                scr_manager_paciente.current = "reportes_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'logout'

            OneLineIconListItem:
              text: 'Regresar'
              on_release:
                root.manager.current = "interfaz"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'logout'
visual_pacientes.kv
#:包括接口/Pacients/registros/Datos.kv
#:包括接口/电容器/寄存器/辅助设备。kv
#:包括接口/电容器/寄存器/先行项。kv
#:包括接口/电容器/寄存器/Intensiva.kv
#:包括接口/电容器/寄存器/报告。kv
#:包括接口/Pacients/registros/Vitales.kv
#:包括接口/容量/管理/注册表。kv
:
名称:'visual_pacientes'
导航布局:
屏幕管理器:
屏幕:
名称:“可视客户”
盒子布局:
方向:“垂直”
MDToolbar:
标题:“和平运动”
标高:10
左侧操作项:[[“菜单”,lambda x:nav\u抽屉\u paciente.set\u state()]
屏幕管理器:
id:scr\U经理\U客户
达托斯:
id:datos_paciente
姓名:“datos_paciente”
先决条件:
id:Antecedents\u paciente
名称:“前辈们”
维塔莱斯:
id:vitales_paciente
姓名:“vitales_paciente”
辅助人员:
id:辅助人员
名称:“客户辅助服务”
报告:
id:reportes_paciente
名称:“客户报告”
强度:
id:intensiva_paciente
名称:“intensiva_paciente”
MDNavigationDrawer:
id:nav_drawer_paciente
盒子布局:
方向:“垂直”
填充:“8dp”
间距:“8dp”
#图片:
#大小提示:无,无
#尺寸:“200dp”,“200dp”
#哈利恩:“中心”
#资料来源:“Actos_de_Paz_I.jpg”
盒子布局:
方向:“垂直”
填充:“8dp”
MDLabel:
id:txt_nome_uno
文本:str(root.ape\u nome\u uno)
文本大小:self.width,无
pos_提示:{“x”:0.5,“y”:0.5}
颜色:0,1,0,1
MDLabel:
id:txt\u nome\u dos
文本:root.ape\u nome\u dos
MDLabel:
id:txt_ape_pat
文本:root.ape\u ape\u pat
MDLabel:
id:txt\U ape\U mat
文本:root.ape\u ape\u mat
滚动视图:
MDList:
OneLineIconListItem:
文本:root.ape\u nome\u uno
OneLineIconListItem:
正文:“太平洋群岛达图”
发布时:
root.manager.current=“注册表屏幕”
#“datos_paciente”
导航抽屉柜设置状态()
IconLeftWidget:
图标:“帐户”
OneLineIconListItem:
文本:“先行项个人”
发布时:
scr_经理_paciente.current=“先行项_paciente”
导航抽屉柜设置状态()
IconLeftWidget:
图标:“瓶装补品plus”
OneLineIconListItem:
文字:“生命迹象登记”
发布时:
scr_经理_paciente.current=“vitales_paciente”
导航抽屉柜设置状态()
IconLeftWidget:
图标:“瓶装补品plus”
OneLineIconListItem:
正文:“辅助诊断”
发布时:
scr\U manager\u paciente.current=“辅助设备\u paciente”
导航抽屉柜设置状态()
IconLeftWidget:
图标:“调整”
OneLineIconListItem:
文字:“Herramientas de Terapia Intensiva”
发布时:
scr\U manager\u paciente.current=“intensiva\u paciente”
导航抽屉柜设置状态()
IconLeftWidget:
图标:“齿轮”
OneLineIconListItem:
正文:'报告y Notas Médicas'
发布时:
scr\U manager\u paciente.current=“报告客户”
导航抽屉柜设置状态()
IconLeftWidget:
图标:“注销”
OneLineIconListItem:
文字:“Regresar”
发布时:
root.manager.current=“interfaz”
导航抽屉柜设置状态()
IconLeftWidget:
图标:“注销”
visual_pacientes.kv
#: include interfaces/pacientes/registros/Datos.kv
#: include interfaces/pacientes/registros/Auxiliares.kv
#: include interfaces/pacientes/registros/Antecedentes.kv
#: include interfaces/pacientes/registros/Intensiva.kv
#: include interfaces/pacientes/registros/Reportes.kv
#: include interfaces/pacientes/registros/Vitales.kv

#: include interfaces/pacientes/gestion/registro.kv

<Visual_Pacientes>:
  name: 'visual_pacientes'
  NavigationLayout:
    ScreenManager:
      Screen:
        name: "visual_pacientes"
        BoxLayout:
          orientation: 'vertical'

          MDToolbar:
            title: "Gestión del Paciente"
            elevation: 10
            left_action_items: [["menu", lambda x: nav_drawer_paciente.set_state()]]

          ScreenManager:
            id: scr_manager_paciente

            Datos:
              id: datos_paciente
              name: "datos_paciente"

            Antecedentes:
              id: antecedentes_paciente
              name: "antecedentes_paciente"

            Vitales:
              id: vitales_paciente
              name: "vitales_paciente"

            Auxiliares:
              id: auxiliares_paciente
              name: "auxiliares_paciente"

            Reportes:
              id: reportes_paciente
              name: "reportes_paciente"

            Intensiva:
              id: intensiva_paciente
              name: "intensiva_paciente"

    MDNavigationDrawer:
      id: nav_drawer_paciente

      BoxLayout:
        orientation: 'vertical'
        padding: "8dp"
        spacing: "8dp"

        #Image:
          #size_hint: None, None
          #size: "200dp", "200dp"
          #halign: 'center'
          #source: "Actos_de_Paz_I.jpg"

        BoxLayout:
          orientation: 'vertical'
          padding: "8dp"

          MDLabel:
            id: txt_nome_uno
            text: str(root.ape_nome_uno)
            text_size: self.width, None
            pos_hint: {"x": 0.5, "y": 0.5}
            color: 0,1,0,1
          MDLabel:
            id: txt_nome_dos
            text: root.ape_nome_dos
          MDLabel:
            id: txt_ape_pat
            text: root.ape_ape_pat
          MDLabel:
            id: txt_ape_mat
            text: root.ape_ape_mat

        ScrollView:
          MDList:
            OneLineIconListItem:
              text: root.ape_nome_uno
            OneLineIconListItem:
              text: "Datos Iniciales del Paciente"
              on_release:
                root.manager.current = "registro_screen"
                #"datos_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: "account"
            OneLineIconListItem:
              text: "Antecedentes Personales"
              on_release:
                scr_manager_paciente.current = "antecedentes_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'bottle-tonic-plus'
            OneLineIconListItem:
              text: 'Registro de Signos Vitales'
              on_release:
                scr_manager_paciente.current = "vitales_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'bottle-tonic-plus'
            OneLineIconListItem:
              text: 'Auxiliares Diagnósticos'
              on_release:
                scr_manager_paciente.current = "auxiliares_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'adjust'

            OneLineIconListItem:
              text: 'Herramientas de Terapia Intensiva'
              on_release:
                scr_manager_paciente.current = "intensiva_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'cogs'

            OneLineIconListItem:
              text: 'Reportes y Notas Médicas'
              on_release:
                scr_manager_paciente.current = "reportes_paciente"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'logout'

            OneLineIconListItem:
              text: 'Regresar'
              on_release:
                root.manager.current = "interfaz"
                nav_drawer_paciente.set_state()
              IconLeftWidget:
                icon: 'logout'