我对py pyside脚本有点问题。我创建了一个设置向导,我想在stackwidget中更改当前的widget,然后进行所有librairies安装......
我尝试了两种解决方案:
首先是这一个:
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 :(得分:0)
连接到信号的插槽称为同步,因此GUI在返回之前不会更新。有很多不同的方法可以解决这个问题,但您可以尝试强制执行这样的更新:
def changepage(self, MainWindow):
self.stackedWidget.setCurrentIndex(4)
QtGui.qApp.processEvents()
如果这不起作用,请尝试使用单次计时器来运行安装程序:
QtCore.QTimer.singleShot(0, lambda: makeinstall(self, MainWindow))