PyQt5 WebEngineView 如果它有 cookie,它会崩溃

问题描述 投票:0回答:0

每次我启动应用程序时,它都会创建缓存和 cookies 文件夹,但如果我关闭应用程序并再次打开它,它会加载 cookies,大约 5 秒后它崩溃并关闭,日志中没有错误,直到那时我有一个强制它删除 cookie 和缓存文件夹的代码。但这不是我想要的,我希望用户能够毫无问题地保留 cookie。

删除 cookie 和缓存:

    try:                
        if os.path.exists(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\Cache')):
            shutil.rmtree((str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\Cache')))
    except:
         pass
       
    try:                
         if os.path.exists(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\Storage')):
             shutil.rmtree((str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\Storage')))
    except:
         pass
    try:                
        if os.path.exists(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\DropCache')):
            shutil.rmtree((str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\DropCache')))
    except:
         pass           
    try:                
        if os.path.exists(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\DropStorage')):
            shutil.rmtree((str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\DropStorage')))
    except:
         pass

web引擎视图的构建:

    self.browser = QWebEngineView()

正在创建所有已删除的文件夹...

    profile = QWebEngineProfile("my_profile", self.browser)
    
    profile.defaultProfile().setPersistentCookiesPolicy(QWebEngineProfile.NoPersistentCookies)
    
    profile.defaultProfile().setCachePath(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\DropCache'))
    profile.defaultProfile().setPersistentStoragePath(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\DropStorage'))
    profile.defaultProfile().setDownloadPath(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Downloads'))

    profile.setCachePath(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\Cache'))
    profile.setPersistentStoragePath(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Documents\WebWidget\Storage'))
    profile.setDownloadPath(str(str(os.path.expanduser(os.getenv('USERPROFILE'))) + r'\Downloads'))
    
    webpage = QWebEnginePage(profile, self.browser)
    webpage.settings().setAttribute(QWebEngineSettings.PlaybackRequiresUserGesture, True)

    self.show()

" profile.defaultProfile().setPersistentCookiesPolicy(QWebEngineProfile.NoPersistentCookies) “我尝试将此值设置为 ForcePersistentCookies 或删除它,它没有改变任何东西。

该软件的全部代码都在该存储库中

qt pyqt pyqt5 qt5 qtwebengine
© www.soinside.com 2019 - 2024. All rights reserved.