我试图实现this question中的代码,但是我发现QTimer
在某些情况下不会触发。
简化代码:
app = QApplication([])
view = QWebEngineView()
view.show()
def callback():
sys.exit(0)
QTimer.singleShot(1000, callback)
app.exec()
应用程序将使用此代码永久运行(即,永远不会执行callback
)。但是,如果您注释掉view.show()
,则它会在一秒钟后退出。
据我所知,此问题特定于QWebEngineView
;如果我们用通用的QWebEngineView
或QWidget
替换QLabel
,则它会按预期工作,并在一秒钟后退出。
这是什么原因,如何解决?
按照@eyllanesc的提示,我发现这是PyQtWebEngine
模块的5.14.0版本引入的错误;以前的版本(5.13.2)没有显示此行为。