python AttributeError: type object 'QWebEngineSettings' has no attribute 'LocalResourceRoots'
时间: 2024-08-15 08:00:58 浏览: 106
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
5星 · 资源好评率100%
`AttributeError: type object 'QWebEngineSettings' has no attribute 'LocalResourceRoots'` 这个错误通常表示你在尝试访问`QWebEngineSettings`类型的对象时,试图使用的`LocalResourceRoots`属性实际上并不存在于该类型的当前版本中。
在Qt5中,`LocalResourceRoots`是在`QWebEngineCore`模块下的特性,而不是直接在`QWebEngineSettings`中。如果你想要允许加载本地资源,应该这么操作:
```python
# 导入正确的模块
from PyQt5.QtWebEngineCore import QUrl
# 创建QWebEngineView实例后
settings = self.web_view.page().settings()
# 将当前目录添加到允许的本地资源根URL列表中
settings.setProperty(QWebEngineCore.QWebEngineSetting.LocalResourceRoots, QUrl.fromLocalFile('.'))
```
这里使用的是`.toLocalFile()`方法将当前工作目录转换为一个QUrl对象。确保替换`self.web_view`为你的实际QWebEngineView实例。
如果你依然遇到这个错误,可能是你引用的Qt版本里并没有`LocalResourceRoots`这个属性,或者是版本更新导致API结构有所变化。查阅最新的Qt文档或更新到最新版的Qt库可能会解决问题。
阅读全文