**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