[Python] Chiusura finestra

Messaggioda mic_1 » 21/06/2021, 10:53

Ciao a tutti!
Anticipo che sono in un sistema Windows.

Ho creato un pulsante wxTogglebutton nella mia finestra principale : Quando è True mi crea una piccola finestra wxFrame che vorrei chiudere quando lo stato del pulsante è a False.
Ho provato con os._exit() che purtroppo chiude tutte le finestre.
Io vorrei che si chiudesse solo quella che si apre alla pressione del pulsante.
Ho provato anche con self.Close() ma non fa nulla. Non funziona nemmeno in un wxButton nuovo sia con EVT_CLOSE che con EVT_BUTTON.

Consigli?

Essendo in Windows non posso chiamare la fork() e procedere con la chiusura del processo figlio.
Ringrazio anticipatamente chi mi risponderà

Dimenticavo... ho provato a True ha chiamare finestra.show() e a false fienstra.destroy() o fienstra.hide() ma non ottengo nulla. Non capisco come mai? Potreste aiutarmi a capire cosa sto sbagliando? Grazie
mic_1
Junior Member
Junior Member
 
Messaggio: 182 di 386
Iscritto il: 11/01/2011, 18:11

Re: [Python] Chiusura finestra

Messaggioda mic_1 » 21/06/2021, 20:31

Il pulsante ToggleButton all'evento chiama questa funziona:
Codice:
def SubNetwork(self, event):
     obj = event.GetEventObject()
     self.state = obj.GetValue()
     print('self.state ', self.state)       
     if M_G_ == M_G and Gr_ == Gr :  Graph = Gr
     elif M_G_ == Gr_ == G_sub :        Graph = G_sub
     if self.state == True:
         print('N_connected_comp_netw ', FunzCalc.N_connected_comp_netw(Graph) )
         if FunzCalc.N_connected_comp_netw(Graph) > 1:   
               ListBoxFrame(Graph).Show()
         else: wx.MessageBox('The network is connected, \n i.e. has a single connected components',
                                          'Dialog', wx.OK | wx.ICON_INFORMATION)
    else:   
         print('Destroy')
         ListBoxFrame(Graph).Destroy()


Sicuramente avrò fatto qualche errore perchè non sono una esperta. Potreste nel caso correggermi?
Inoltre G_sub sono i diversi subgraph dei componenti connessi creati una volta selezionato il componente connesso presente in una listbox della finestra che si presenta alla pressione del bottone Toggle e che vorrei distruggere o nascondere alla chiusura.

Vorrei anche chiedervi una seconda informazione: Una volta creato il subgraph, del componente connesso selezionato, parte tutto il ciclo del SUBFRAME principale avendolo impostato in questo modo:
Codice:
class SubFrame(wx.Frame):   
    def __init__(self, isPressed): 
          self.isPressed = isPressed
          if self.isPressed == False:  M_G_ = M_G ; Gr_ = Gr   
          else: Graph = Gr ; M_G_ = Gr_ = G_sub

quindi passo FALSE al Grafo principale e TRUE ai Subgraph dei componenti connessi in modo da poter riutilizzare lo stesso codice (e tutto funziona bene tranne il tasto ToggleButton, devo ancora controllare i pulsanti SAVE).
Il problema è che il pulsante Toggle per i subgraph, non trovando componenti connessi, mi restituisce correttamente il messaggio di DIALOG ; Quando vado a selezionare il pulsante ma nel Frame del Graph Principale NON OTTENGO la finestra dei componenti connessi ma ottengo il risultato del Subgraph elaborato.

DOMANDA: Come posso mantenerli distinti?? Ho provato ad inserire la condizione ma purtroppo non è sufficiente.
Vorrei che i pulsanti presenti del SubFrame restassero legati al grafo/subgrafo elaborato (Vorrei poter confrontare i diversi grafi elaborati )

Spero di essermi fatta capire :roll: :lol:
Grazie
mic_1
Junior Member
Junior Member
 
Messaggio: 183 di 386
Iscritto il: 11/01/2011, 18:11


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite