2017-05-02 4 views
0

Dies ist mein Hauptprogramm. Ich renne es und es öffnet mir mein Hauptfenster mit einer Drucktaste. Wenn ich den Knopf drücke, öffnet sich mir ein zweites Fenster. Wenn ich das zweite Fenster schließe und die Taste erneut drücke, wird das zweite Fenster nicht geöffnet. Ich muss das Programm erneut ausführen, um zu arbeiten. Wie sollte ich tun, um mein zweites Fenster jedes Mal zu öffnen, wenn ich den Knopf vom Hauptfenster drücke, ohne das Hauptfenster/Programm zu schließen?[PyQt] Zweites Fenster jedes Mal öffnen, wenn ich die Taste drücke, ohne das Programm zu schließen

Antwort

1

Sie rufen nur show(), wenn Adauga_p_cameraNone ist. Nach dem ersten Klick ist es nicht mehr None. Sie müssen den Anruf an show() außerhalb der Bedingung verschieben.

def Adauga_p_camera(self): 
    if self.Adauga_p_camera is None: 
     self.Adauga_p_camera = Adauga_p_camera(self) 

    self.Adauga_p_camera.show() 

Sie Wiederverwendung auch den Namen Adauga_p_camera als Name einer Klasse, Methode und Instanzvariable. Dies ist nicht nur verwirrend, sondern im Fall von letzterem 2 überschreiben Sie tatsächlich die Methodendefinition, wenn Sie self.Adauga_p_camera=None schreiben. Sie sollten jedem dieser Elemente einen eindeutigen Namen zuweisen, um unbeabsichtigtes Verhalten zu vermeiden.

Verwandte Themen