qt使用qwebengineview加载百度离线地图不能使用触屏拖动
时间: 2023-09-01 13:08:41 浏览: 77
可能是因为QWebEngineView默认情况下不支持触屏事件。你可以通过在QWebEngineView上安装一个事件过滤器来捕获并处理触屏事件。以下是一个示例:
```python
class TouchEventFilter(QObject):
def eventFilter(self, obj, event):
if event.type() == QEvent.TouchBegin:
# 处理触屏按下操作
return True
elif event.type() == QEvent.TouchUpdate:
# 处理触屏移动操作
return True
elif event.type() == QEvent.TouchEnd:
# 处理触屏松开操作
return True
else:
return super().eventFilter(obj, event)
# 在QWebEngineView上安装事件过滤器
view = QWebEngineView()
view.installEventFilter(TouchEventFilter())
```
你需要根据具体情况实现`TouchEventFilter`类中的相应方法来处理触屏事件。另外,你可能还需要在QWebEngineView中设置一些属性来确保触屏事件能够正常传递。例如:
```python
view.setAttribute(Qt.WA_AcceptTouchEvents, True)
view.setFocusPolicy(Qt.StrongFocus)
view.setFocus(True)
```
这些设置可以确保QWebEngineView能够正确接收触屏事件并将其传递给事件过滤器。
阅读全文