首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个QWebEngineViews是否使用相同的网页缓存配置文件?

多个QWebEngineViews是否使用相同的网页缓存配置文件?
EN

Stack Overflow用户
提问于 2022-07-25 06:59:22
回答 1查看 48关注 0票数 1

我有多个QWebEngineView实例,每个实例都加载相同的URL (例如“https://*****.com/login”),

代码语言:javascript
复制
widget = Qwidget()
lay= QHBoxLayout()
initialUrl = "https://******.com/login/"
for i in range(3):
    frame = QFrame()
    web_lay = QVBoxlayout()
    webView = QWebEngineView()
    webView.load(QUrl(initialUrl))

    reload_button = QPushButton(QIcon(":/icons/images/icons/cil-loop"), "", self)
    reload_button.setToolTip("reload")
    reload_button.clicked.connect(lambda: webView.reload()) 
   # This is a wrong way of writing, so each button cannot be corresponding to WebView.
   # I write this just to express that I have a corresponding button for each

    web_lay.addwidget(webView)
    web_lay.addWidget(reload_button)
    Frame.setLayout(web_lay)
    
    lay.addwidget(frame)

一旦我在QWebEngineView中登录到相应的网站帐户,在刷新其他页面、刷新(单击重新加载按钮)取消登录QWebEngineView中的接口之后也会刷新显示的页面,刷新后的界面将是已记录的界面。

我例外的是,每个QWebEngineView都可以登录到不同的帐户。

还有其他人面临这样的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-25 08:29:08

问题是,除非另有规定,每个QWebEngineView都使用相同的默认QWebEngineProfile。您需要做的是为每个QWebEngineProfile创建一个唯一的QWebEngineView,并创建一个使用该配置文件并将其分配给QWebEngineViewQWebEnginePage .

例如:

代码语言:javascript
复制
from PySide6.QtWebEngineCore import QWebEngineProfile, QWebEnginePage

...
for i in range(3):
    storage = "unique/storage/location" + str(i) # <- unique for each iteration
    frame = QFrame()
    web_lay = QVBoxlayout()
    webView = QWebEngineView()
    profile = QWebEngineProfile(storage, webview)
    page = QWebEnginePage(profile, webview)
    webview.setPage(page)
    webView.load(QUrl(initialUrl))
    ...

...

一旦将页面分配给视图,每个视图都将独立运行。每个遗嘱都有一个单独的缓存、不同的历史记录、不同的cookie、不同的设置等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73105117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档