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 特有的;如果我们用通用的QWidgetQLabel 替换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:计时器在可见时不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 7 中,导航栏在运行时不可见

VB.NET - Microsoft.Office.Interop.Outlook - 工作站锁定时不起作用?

PyQt5 QWebEngineView 无法正常工作

使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作

UITableViewCell 上的圆形 UIImageView 在首次加载时不起作用

QWebEngineView 不加载 Openlayers