【问题标题】:Python QWebEngineView redirects to wrong language pagePython QWebEngineView 重定向到错误的语言页面
【发布时间】:2017-04-17 14:54:00
【问题描述】:

当我使用以下代码浏览页面时,结果是另一种语言(我认为是俄语)。当我在其他浏览器中浏览到相同的 url 时,我得到了预期的英文 404 页面。我尝试设置接受语言,但这没有帮助。我错过了什么?

import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWebEngineWidgets import QWebEngineView
app = QtWidgets.QApplication(sys.argv)
w = QWebEngineView()
w.page().profile().setHttpAcceptLanguage('en')  # This doesn't help
w.load(QtCore.QUrl('http://turbobit.net/download'))  # Goes to russian? 404 page
w.show()
app.exec_()

以下 webkit 版本按预期工作

import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWebKitWidgets import QWebView
app = QtWidgets.QApplication(sys.argv)
w = QWebView()
w.setUrl(QtCore.QUrl('http://turbobit.net/download'))  # Loads correct English 404 page
w.show()
app.exec_()

【问题讨论】:

    标签: python pyqt pyqt5 qtwebengine


    【解决方案1】:

    创建视图前需要设置语言:

    import sys
    
    from PyQt5 import QtWidgets, QtCore
    from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile
    
    app = QtWidgets.QApplication(sys.argv)
    QWebEngineProfile.defaultProfile().setHttpAcceptLanguage('en')
    w = QWebEngineView()
    w.load(QtCore.QUrl('http://turbobit.net/download'))
    w.show()
    app.exec_()
    

    【讨论】:

    • 我花了太多时间尝试各种各样的东西,以至于与我最初的猜测如此接近。非常感谢!!
    • 这实际上是 Qt 中的一个错误,将在 5.9(或者可能是 5.9.1)中修复:bugreports.qt.io/browse/QTBUG-60588
    猜你喜欢
    • 1970-01-01
    • 2016-03-07
    • 2010-12-16
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    相关资源
    最近更新 更多