QWebEngineView:计时器在可见时不起作用
Posted
技术标签:
【中文标题】QWebEngineView:计时器在可见时不起作用【英文标题】:QWebEngineView: Timers do not function when visible 【发布时间】:2020-03-11 01:43:02 【问题描述】:我试图实现来自this question 的代码,但我发现QTimer
在某些情况下不会触发。
简化代码:
app = QApplication([])
view = QWebEngineView()
view.show()
def callback():
sys.exit(0)
QTimer.singleShot(1000, callback)
app.exec()
应用程序将永远使用此代码运行(即callback
永远不会执行)。但是,如果您注释掉 view.show()
,那么它会在一秒钟后退出。
据我所知,这个问题是QWebEngineView
特有的;如果我们用通用的QWidget
或QLabel
替换QWebEngineView
,那么它会按预期工作并在一秒钟后退出。
这是什么原因,我该如何解决?
【问题讨论】:
奇怪的是,我在 Linux 上测试了 Python 3.8.1、PyQt5 5.14.1 中的代码并且它工作正常。 可能是bug,试试其他版本的pyqt5吧 您在哪里运行代码:CMD 或交互式 python 控制台或某些 IDE? 嗯,我认为这是一个错误,请尝试使用早期版本的 pyqt5 和 pyqtwebengine。你用的是同一个版本的pyqt5和pyqtwebengine吗? 你最好发布它。 :-) 【参考方案1】:根据@eyllanesc 的提示,我发现这是PyQtWebEngine
模块的5.14.0 版本引入的错误;以前的版本 (5.13.2) 没有显示此行为。
【讨论】:
以上是关于QWebEngineView:计时器在可见时不起作用的主要内容,如果未能解决你的问题,请参考以下文章
VB.NET - Microsoft.Office.Interop.Outlook - 工作站锁定时不起作用?
使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作