2016-08-02 31 views
0

Ich habe ein kleines Problem mit py pyside Skript. Ich mache einen Setup-Assistenten, und ich möchte, dass meine aktuelle Widget in meinem stackedwidget dann die ganze Installation von librairies etc machen ändern ...Zwei Funktionen nacheinander beim Drücken der Drucktaste - Pyside

ich zwei Lösungen versucht haben:

Die erste ist diese:

self.pushButton.clicked.connect(lambda: changepage(self, MainWindow)) 
self.pushButton.clicked.connect(lambda: makeinstall(self, MainWindow)) 

und es funktioniert nicht, das Fenster nicht ändern und meine Installation wird gestartet.

Das zweite ist:

def changepage(self, MainWindow): 
    self.stackedWidget.setCurrentIndex(4) 
    makeinstall(self, MainWindow) 

und es nicht zu arbeiten. In den beiden Lösungen wird die Seite nach der Installation geändert (nach dem Ende der Funktion denke ich).

Hatte jemand eine Lösung, um zwei Funktionen nacheinander in pyside auszuführen?

Regards,

Antwort

0

Das auf das Signal verbunden Schlitz synchron genannt, so dass die GUI nicht aktualisiert wird, bis es zurückkehrt. Es gibt viele verschiedene Möglichkeiten, dieses Problem zu lösen, aber man kann versuchen, ein Update wie diese zwingt:

def changepage(self, MainWindow): 
    self.stackedWidget.setCurrentIndex(4) 
    QtGui.qApp.processEvents() 

Oder wenn das nicht funktioniert, versuchen Sie ein Single-Shot-Timer mit dem Installationsprogramm zu starten:

QtCore.QTimer.singleShot(0, lambda: makeinstall(self, MainWindow)) 
+0

Perfekt, die erste Lösung funktioniert, vielen Dank !! :) –