Неправильный рендеринг Javascript от PyQt5 QWebEngine - PullRequest
0 голосов
/ 25 октября 2019

Я создаю браузер, используя PyQt5. Это довольно большой код, но это главная проблема, с которой я сталкиваюсь. Код такой:

import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtWidgets import QApplication, QMainWindow

app = QApplication(sys.argv)

web = QWebEngineView()
file = open("example.html", "r")
html = file.read()
web.setHtml(html)
file.close()
web.show()

sys.exit(app.exec_())

Проблема в том, что рендеринг довольно странный. Изображение рендеринга здесь. Содержимое файла example.html:

<!DOCTYPE html>
<head><title>JS Example</title></head>
<h1>JS example</h1>
<p><button type = 'button' onclick = "document.getElementById('tobeshown').style.display='block'">Show hidden parts of this page</button></p>
<p id = 'tobeshown' style = "display:none">
Peekaboo!
</p>
<p>
<button type = 'button' onclick="document.getElementById('tobeshown').style.display='none'">Hide it!</button>
</p>
</body>
</html>

Ожидаемый результат (это в браузере Mozilla Firefox): здесь

Может кто-нибудь сказать мне, почему механизм рендеринга PyQt5 генерирует эти символы вверху? И что я могу сделать, чтобы решить это? Большое спасибо.

1 Ответ

1 голос
/ 25 октября 2019

Таким образом, проблема не в рендеринге WebEngine, а в чтении Python файла. Изменение кодировки файла на UTF-8 решило проблему для меня.

...