2016-08-02 81 views
0

我有一個Python腳本的問題。我做一個設置嚮導,我想改變我的當前小我stackedwidget然後使librairies等所有安裝...兩個功能一個接一個地點擊按鈕時 - Pyside

我已經試過兩種解決方案:

第一是這一個:

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

它不工作,窗口不會改變,我的安裝啓動。

二是:

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

,並沒有工作過。在這兩種解決方案中,頁面在安裝後發生改變(在我認爲的功能結束之後)。

有人有解決方案來運行兩個函數,一個接一個地在pyside?

問候,

回答

0

連接到所述信號的時隙稱爲同步,所以GUI將不被更新,直到它返回。有很多不同的方法來解決這個問題,但你可以嘗試強制這樣的更新:

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

或者,如果不行,請嘗試使用一個單次定時器運行安裝程序:

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

完美,第一個解決方案工作,非常感謝! :) –