PySide6 6.8.0在Linux下给QWebEngineView装事件过滤器触发段错误
Linux环境下PySide6 6.8.0中QWebEngineView搭配全局事件过滤器触发段错误
在Linux系统的PySide6 6.8.0版本中,运行以下代码会触发段错误(segmentation fault):
import sys from PySide6.QtCore import QObject, QUrl from PySide6.QtWidgets import QApplication, QWidget from PySide6.QtWebEngineWidgets import QWebEngineView class Obj(QObject): def eventFilter(self, obj, e): print(e) return False app = QApplication(sys.argv) #w = QWidget() w = QWebEngineView() w.setUrl(QUrl('about:blank')) obj = Obj() app.installEventFilter(obj) w.show() app.exec()
问题说明
该问题仅在使用QWebEngineView时出现,替换为普通QWidget则无异常。
若将事件过滤器安装到具体的QWidget实例而非全局QApplication上,程序可正常运行,示例代码如下:
import sys from PySide6.QtCore import QObject, QUrl from PySide6.QtWidgets import QApplication, QWidget from PySide6.QtWebEngineWidgets import QWebEngineView class Obj(QObject): def eventFilter(self, obj, e): print(e) return False app = QApplication(sys.argv) wid = QWidget() wid.show() w = QWebEngineView() w.setUrl(QUrl('about:blank')) obj = Obj() wid.installEventFilter(obj) w.show() app.exec()
内容的提问来源于stack exchange,提问作者badnn1
相关产品推荐
相关产品推荐

