0

我对 py pyside 脚本有一点问题。我制作了一个安装向导,我想在我的stackedwidget中更改我当前的小部件,然后进行所有库等的安装......

我尝试了两种解决方案:

第一个是这个:

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中运行吗?

问候,

4

1 回答 1

0

连接到信号的槽是同步调用的,所以GUI在返回之前不会更新。有很多不同的方法可以解决这个问题,但您可以尝试像这样强制更新:

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

或者,如果这不起作用,请尝试使用单次计时器来运行安装程序:

    QtCore.QTimer.singleShot(0, lambda: makeinstall(self, MainWindow))
于 2016-08-02T22:15:56.093 回答