Qwebengineview 没有函数setViewport
时间: 2023-08-01 21:06:11 浏览: 132
非常抱歉,我之前提到的代码中有误。在QWebEngineView中没有setViewport()函数,可以使用setViewport(QWidget * widget)函数来设置viewport,这个函数接受QWidget类型的参数。
如果您在使用QWebEngineView加载地图时,触摸无法拖动,请尝试以下方法:
1. 设置viewport:
```python
self.webEngineView.setViewport(QWidget())
```
2. 确认是否正确设置了viewport的大小:
```python
self.webEngineView.setViewportSize(self.webEngineView.size())
```
3. 尝试在加载地图之前设置以下属性:
```python
self.webEngineView.settings().setAttribute(QWebEngineSettings.TouchIconsEnabled, True)
self.webEngineView.settings().setAttribute(QWebEngineSettings.TouchEnabled, True)
```
4. 如果仍然无法拖动,请尝试将以下代码添加到你的QWebEngineView对象的mousePressEvent方法中:
```python
self.webEngineView.mousePressEvent = self.onMousePressEvent
def onMousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.dragPos = event.globalPos()
event.accept()
def onMouseMoveEvent(self, event):
if event.buttons() == QtCore.Qt.LeftButton:
self.move(self.pos() + event.globalPos() - self.dragPos)
self.dragPos = event.globalPos()
event.accept()
```
以上是一些可能解决触屏拖动地图的方法,您可以根据您的代码和环境进行调整和尝试。
阅读全文