2016-08-02 113 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

完美,第一个解决方案工作,非常感谢! :) –