如何在 PyQt4 中禁用按钮(或整个主要 window)直到函数 returns 0

How to disable button(or whole main window) in PyQt4 until the function returns 0

我有一个网络抓取程序脚本,我们称之为 scraper.py,它将数据写入数据库。我用显示数据库内容的 tableWidget 制作了 gui。现在,我添加了一个按钮,该按钮将从 scraper.py 脚本中调用 main() 函数。因为,scraper 使用 selenium 并且需要大约 20 秒才能完成所有操作(从打开浏览器到关闭浏览器)我希望禁用该按钮(或者可能是整个名为 MainWindow 的表单)直到 scraper.py 完成。 此外,main() 函数不一定需要有 'return 0' 语句。

提前致谢。

def fetchFuction():
    QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor))
    # if incase function failed then restore it
    try:
        yourFetchFucn()
        QtGui.QApplication.restoreOverrideCursor()
    except:
        QtGui.QApplication.restoreOverrideCursor()

希望对您有所帮助