如何将 QWebEngineProfile 设置为 QWebEngineView

2023-12-14

我想将不同的 QWebEngineProfiles 设置为不同的 QWebEngineViews,这意味着每个视图都有自己的 cookie 存储。我找不到任何有关它的文档,因此我们将不胜感激所有帮助。 任何将独立 cookie 存储设置为独立 Web 视图的另一种方法的建议也会有所帮助。干杯。

代码如下(此处连接信号的格式不正确,但请放心,它在实际代码中是正确的):

from PyQt5.QtCore import *
from PyQt5.QtWidgets import * 
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
import sys

class MainWindow(QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args,**kwargs)
        self.browser={}
        self.cookiestore={}
        self.page={}
        No = input("No: ")
        for i in range(int(No)):
            self.browser[str(i)] = QWebEngineView()
            storagename = str(i)
            self.cookiestore[str(i)] = QWebEngineProfile(storagename, self.browser[str(i)])
            self.page[str(i)] = QWebEnginePage(self.cookiestore[str(i)], self.browser[str(i)])
            self.browser[str(i)].setPage(self.page[str(i)])
            self.browser[str(i)].load(QUrl("https://www.google.com"))
      self.browser[str(i)].loadFinished.connect(lambda:self._loaded(str(i)))

    def _loaded(self, No):
        self.browser[No].page().toHtml(self._callable)
    def _callable(self, data):
        self.html = data
        if "" in self.html:
            print("Done")
        else:
            print("wait")

app = QApplication(sys.argv)
window = MainWindow()
app.exec_()

如果你想建立一个QWebEngineProfile to a QWebEngineView你必须通过QWebEnginePage如下所示:

webview = QWebEngineView()
profile = QWebEngineProfile("somestorage", webview)
webpage = QWebEnginePage(profile, webview)
webview.setPage(webpage)

Example:

from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile, QWebEnginePage
from PyQt5.QtWidgets import QApplication

if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)
    views = []
    for i in range(5):
        webview = QWebEngineView()
        profile = QWebEngineProfile(f"storage-{i}", webview)
        webpage = QWebEnginePage(profile, webview)
        webview.setPage(webpage)
        webview.load(QUrl("https://stackoverflow.com/questions/48142341/how-to-set-a-qwebengineprofile-to-a-qwebengineview"))
        webview.show()
        views.append(webview)
    sys.exit(app.exec_())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 QWebEngineProfile 设置为 QWebEngineView 的相关文章

随机推荐

  • 在 DropDownListFor 上添加搜索功能

    我想知道是否有人可以帮助我解决我面临的问题 我正在尝试使用 razor 在 DropDownListFor 上创建搜索 private List
  • ASP.NET Identity OWIN 中间件 Google OAuth2 AuthenticationManager 登录不起作用

    我创建了一个简单的 ASP NET MVC4 网站来测试新的 OWIN 身份验证中间件 我决定从 Google OAuth2 开始 我在配置方面遇到了很大的困难 但我设法让 Google 授权用户 我现在遇到的问题是 OWIN 未对用户进行
  • 展平深度嵌套的数据框列表

    考虑这个数据帧的嵌套列表 df lt data frame x 1 5 y letters 1 5 l lt list df list df df list df list df df list df list df df 如何从这个深度嵌
  • 如果落在另一个 df 中的日期范围之间,python 将值分配给 pandas df

    如果日期落在另一个数据框中的两个日期之间 创建新列并分配值的最佳方法是什么 e g dataframe A date values 2017 05 16 x 2017 04 12 Y dataframe B df contains date
  • Micronaut ReadTimeoutException 异常

    我有一个提供 REST API 的 Grails 4 应用程序 端点之一有时会失败 但会出现以下异常 io micronaut http client exceptions ReadTimeoutException Read Timeout
  • tf.keras 和 tf.python.keras 有什么区别?

    我遇到过严重的不兼容问题 因为相同的代码在其中一个与另一个之间运行 例如 获取张量的值 编译模型 节省优化器 展望Github源码 模块及其导入看起来相当相同 并且tf keras甚至进口自tf python keras 在教程中 我经常看
  • Python:使用 imshow 绘制 2D 彩色图

    我试图使用颜色在二维图上表示两个变量的函数 我遇到过这个例子here from numpy import exp arange from pylab import meshgrid cm imshow contour clabel colo
  • Outlook 无法识别 ics 文件

    我有一些问题 我正在尝试发送 ics 文件 以便 Outlook 用户可以在他的日历中添加该事件 在某些版本中 例如 2010 它运行良好 家庭版 但在某些版本 例如商业版 上它不能直接识别它 您必须双击内容才能预览它 在另一个版本中 当我
  • 如何获取像 `source('myfile.r')` 这样的 R Markdown 文件?

    我经常有一个主要的 R Markdown 文件或knitr LaTeX 文件 我在其中source其他一些 R 文件 例如 用于数据处理 然而 我认为在某些情况下 让这些源文件成为它们自己的可重现文档 例如 R Markdown 文件不仅包
  • 要读取Excel,我们可以使用Spring Batch吗?

    我想知道是否可以使用春季批次 以便读取 Excel 文件并将其保存在数据库中 remark Excel 文件的内容每 2 小时更改一次 如果 Spring Batch 无法实现 我还可以使用什么其他解决方案 去看看Excel 的 sprin
  • Xcode 3.2.6 和 4 链接器错误 ld:bad codegen, 指针 diff in ... 到全局弱符号

    我在 Xcode 3 2 6 和 Xcode 4 中遇到非常奇怪的错误 Xcode 3 2 5 在我的项目中没有错误 默认隐藏符号选项设置为 YES 这些链接错误与模板类内的静态成员 指针 有关 有什么想法 要检查的编译器 链接器键吗 这与
  • 为什么使用“is”表达式的测试比使用runtimeType的测试更稳定?

    在 dart 游览页面上 https dart dev guides language language tour getting an objects type 这些有一个声明 用 is 表达式测试变量类型更稳定 为什么会这样呢 An i
  • 不同角色的不同API功能

    我有asp net core 2 1的API 基于声明的身份验证 是否可以将这两个api函数合二为一 Authorize Roles Admin HttpPost delete public IActionResult Delete Fro
  • XmlSerializer ,base64 编码 String 成员

    考虑一个简单的案例 public class Test public String myString 有什么方法可以告诉 XmlSerializer 在序列化时对 myString 进行 base64 编码吗 您可以简单地将其设置为byte
  • 反应 set(a) 和 set(a => a) 的区别

    case1和case2有什么区别 const a setA useState 0 setA a 1 case 1 setA a gt a 1 case 2 setA a 1 将从以下值更新a从当前外壳 setA a gt a 1 将从之前的
  • 如何在 Vim 中用编号标签替换 CSV 列分隔符?

    我想用不同的值替换一系列管道字符 我该如何使用正则表达式来做到这一点 Example This is a sentence And this is the second one 最后结果 This new is new2 a new3 se
  • 循环回到代码中的特定点

    所以我正在编写一个小游戏 我试图做一些我不明白该怎么做的事情 我定义了一个函数 当代码不满足任何条件时 我希望它返回到另一行代码 但我不明白该怎么做 这是我正在处理的代码的一部分 print What s your favourite ty
  • 序列化与内爆

    您认为在 MySQL 数据库的记录中存储一些图像 ID 的更好方法是什么 这只是图像 ID 将用于从不同的库中获取图像 我是否会像 1 4 7 9 10 12 这样破坏记录中的 id 还是只是序列化数组并存储它 使用其中一种而不是另一种是否
  • 直到在 FluentWait 中无法应用 - java

    我之前有一个 Selenium 的辅助类 它的作用就像一个魅力 突然之间 这个问题出现了 我还附上了受影响功能的屏幕截图 直到 java util function Function 在 FluentWait 中无法应用 到 org ope
  • 如何将 QWebEngineProfile 设置为 QWebEngineView

    我想将不同的 QWebEngineProfiles 设置为不同的 QWebEngineViews 这意味着每个视图都有自己的 cookie 存储 我找不到任何有关它的文档 因此我们将不胜感激所有帮助 任何将独立 cookie 存储设置为独立