Jump to content

Como eu faço para chamar um método de uma classe para outra?


Postagens Recomendadas

**estou tentando fazer com que meu botão de 'cancelar' feche o MDDialog mas esse botão não esta na mesma classe que abre o MDdialogo, se alguém souber como posso fazer para funcionar eu agradeço.
 

 Main.py ...

class Janela2(MDScreen):
            
                def __init__(self, *args, **kwargs):
                    super().__init__(args, kwargs)
            
                    self.Janela_Criar = None
                    self.Janela_Editar = None
                    self.Deletar_gaiola = None
                    self.janela_editar = None
                    self.janela_deletar = None
                    self.alerta = None
            
                def PegarTexto(self):
                    self.alerta = MDDialog(title='Oops!',
                                           text=f"ERRO: GAIOLA '{self.ids.numero.text}'"
                                                f" NÂO EXISTE!!\n\n"
                                                "você pode adicionar-la em : (CRIAR GAIOLA)",
                                           radius=[20, 20, 20, 20], size_hint=(0.5, 1))
            
                    peso = self.ids.Peso.text
                    Numero = self.ids.numero.text
                    numero = int(self.ids.numero.text)
            
                    if numero in Lista_confirmacao:
                        valor = float(peso) - Dicionario_gaiolas[Numero]
                        if Numero not in Dicionario_Total:
                            Dicionario_Total[Numero] = list()
                            Dicionario_Total[Numero].append(f'{valor:.1f}')
                            lista_total.append(valor)
                            self.ids.Peso.text = ''
                            self.ids.numero.text = ''
                            print(Dicionario_Total[Numero])
                        else:
                            Dicionario_Total[Numero].append(f'{valor:.1f}')
                            lista_total.append(valor)
                            self.ids.Peso.text = ''
                            self.ids.numero.text = ''
                            print(Dicionario_Total)
                    else:
                        self.alerta.open()
                        self.ids.numero.error = True
                        self.ids.numero.text = ''
        
    ** aqui é onde eu abro o MDDialog **
            
                def abrir_criar(self):
                    self.Janela_Criar = MDDialog(title='CRIAR GAIOLAS ', content_cls=Criar(), type='custom',
                                                 size_hint=(0.4, 1), pos_hint={"center_x": .5, "center_y": .5},
                                                 radius=[20, 20, 20, 20])
            
                    self.Janela_Criar.open()
            
            
            
                def abrir_editar(self):
                    self.janela_editar = Editar()
                    self.Janela_Editar = MDDialog(title='EDITAR GAIOLA', content_cls=self.janela_editar, type='custom',
                                                  size_hint=(0.4, 1), pos_hint={"center_x": .5, "center_y": .5},
                                                  radius=[20, 20, 20, 20])
                    self.Janela_Editar.open()
            
                
            
                def abrir_deletar(self):
                    self.janela_deletar = Deletar_Gaiola()
                    self.Deletar_gaiola = MDDialog(title='EDITAR GAIOLA', content_cls=self.janela_deletar, type='custom',
                                                   size_hint=(0.4, 1), pos_hint={"center_x": .5, "center_y": .5},
                                                   radius=[20, 20, 20, 20])
                    self.Deletar_gaiola.open()
            
                
                
                
class Criar(MDBoxLayout):
    fechar = Janela2()
                
    def fechar_criar(self, obj):
        self.fechar.Janela_Criar.dismiss()
        
        *** tentei assim mas não funciona

Kv... (obs: O botão que estou me referindo esta no final do código da classe "Criar")

<Janela2>:
        MDBoxLayout:
            orientation: 'vertical'
            canvas.before:
                Color:
                    rgba: hex('#778899')
                Rectangle:
                    size:self.size
                    pos:self.pos
    
    
            MDBoxLayout:
                MDTopAppBar:
                    title: 'PESAGEM DE ROUPAS LIMPAS'
                    pos_hint: {'top':1}
                    elevation: 10
                    md_bg_color: "#e7e4c0"
                    specific_text_color: "#4a4939"
                    right_action_items: [["menu", lambda x: nav_drawer.set_state("open")]]
    
        MDFloatLayout:
            orientation: 'vertical'
            canvas.before:
                Color:
                    rgba: hex('#e7e4c0')
    
            MDTextField:
                id: Peso
                hint_text: 'PESO:'
                mode: "rectangle"
                input_filter: 'float'
                size_hint: 0.23, 0.09
                font_size: '12dp'
                pos_hint: {"center_x": .5, "center_y": .7}
    
            MDTextField:
                id: numero
                input_filter: 'int'
                hint_text:'NUMERO DA GAIOLA:'
                mode: 'rectangle'
                font_size:'12dp'
                size_hint: 0.23, 0.09
                pos_hint: {"center_x": .5, "center_y": .55}
    
            MDFillRoundFlatButton:
                id: Botao1
                text: 'OK'
                font_style: 'H4'
                font_size: '12dp'
                line_color: hex('#CD5C5C')
                md_bg_color: hex('#696969')
                size_hint: 0.15, 0.08
                pos_hint: {"center_x": .5, "center_y": .4}
                on_release: root.PegarTexto()
    
            MDFillRoundFlatButton:
                id: finalizar
                text: 'Finalizar'
                font_style: 'H2'
                font_size: '13dp'
                line_color: hex('#CD5C5C')
                md_bg_color: hex('#696969')
    
                size_hint: 0.15, 0.08
                pos_hint: {"center_x": .5, "center_y": .3}
                on_release: app.root.current = 'tela3'
    
        MDNavigationDrawer:
            id: nav_drawer
            radius: (16, 0, 0, 16)
            anchor: "right"
            size_hint: 0.37, 1
            padding: 0, 10, 56, 16
    
            MDNavigationDrawerMenu:
                closing_time: 0,1
    
                MDNavigationDrawerHeader:
                    title: "CONFIGURAÇOES"
                    text: "DE GAIOLAS"
                    title_font_size: "28dp"
                    text_halign: 'center'
                    text_font_size: "23dp"
                    spacing: "15dp"
                    padding: "10dp", "29dp", "0dp", "60dp"
                MDNavigationDrawerDivider:
    
                MDNavigationDrawerItem:
                    id: Abrir_Criar
                    name: 'Criar_gaiolas'
                    icon: "config5.png"
                    text: "{:>15}".format('CRIAR GAIOLAS')
                    text_font_size: "8dp"
                    on_release: root.abrir_criar()
                MDNavigationDrawerDivider:
    
                MDNavigationDrawerItem:
                    icon: "editar1.png"
                    text: "{:>15}".format('EDITAR TARA')
                    on_release: root.abrir_editar()
                MDNavigationDrawerDivider:
    
                MDNavigationDrawerItem:
                    icon: "deletar1.png"
                    text: "{:>15}".format('DELETAR GAIOLA')
                    on_release: root.abrir_deletar()
                MDNavigationDrawerDivider:
    
    
<Criar>:
    orientation: 'vertical'
    spacing: "12dp"
    size_hint_y: None
    height: "215dp"
    MDFloatLayout:
       orientation: 'vertical'
       MDTextField:
          id: Criar_Gaiola
          hint_text: 'NUMERO'
          mode: "rectangle"
          input_filter: 'int'
          multiline: False
          size_hint: 0.25, 0.43
          font_size: '13dp'
          pos_hint: {"center_x": .5, "center_y": 0.85}
          size_hint: 0.35, 0.25
        MDTextField:
           id: Criar_Tara
           hint_text:'TARA:'
           text: ''
           mode: 'rectangle'
           input_filter: 'float'
           size_hint: 0.25, 0.43
           font_size: '13dp'
           pos_hint: {"center_x": .5, "center_y": .5}
           size_hint: 0.35, 0.25
        
        MDFillRoundFlatButton:
           id: Criar_Salvar
           text: 'SALVAR'
           pos_hint: {"center_x": .73, "center_y": .1}
           size_hint_x: 0.38
        MDFillRoundFlatButton:
           id: Cancelar_Criar
           text: 'CANCELAR'
           pos_hint: {"center_x": .25, "center_y": .1}
           size_hint_x: 0.2
 *** Nesse botão que quero acionar a funçao **
           on_release: root.fechar_criar()
        MDIconButton:
           icon: "fechar1.png"
           pos_hint: {"center_x": .98, "center_y": 1.2}
           size_hint: 0.13, 0.14

 

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora
  • Quem está online   0 Membros, 0 Anônimos, 36 Visitantes (Ver lista completa)

    • There are no registered users currently online


×
×
  • Create New...