2017-04-17 39 views
1

當我使用下面的代碼瀏覽頁面時,結果是另一種語言(我認爲是俄語)。當我瀏覽到其他瀏覽器中的相同網址時,我會按預期收到英文404頁面。我嘗試設置接受的語言,但沒有幫助。我錯過了什麼?Python QWebEngineView重定向到錯誤的語言頁面

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_() 

回答

2

您需要在創建視圖之前設置語言:

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_() 
+0

我花了太多的時間去嘗試所有耍酷與我最初的猜測如此接近。非常感謝!! –

+0

這實際上證明是Qt中的一個bug,它將在5.9(或者可能是5.9.1)中被修復:https://bugreports.qt.io/browse/QTBUG-60588 –