Я впервые задаю вопрос, если что-то не так, пожалуйста, скажите мне, я буду признателен.
Я использую QWebEngineUrlSchemeHandler для пользовательского URL-адреса и хочу использовать QFileоткрыть файл javascript для тестирования.
Во-первых, если я просто использую
QFile("ken.js")
Окно может открыть JavaScript, но если я использую свой собственный QFile, я понятия не имею, какобработать данные после того, как я прочитал из QIODevice.read ().
Я хочу знать, что мне нужно сделать, чтобы окно могло открыть JavaScript после того, как я прочитал данные из QIODevice.read ().
Пожалуйста, дайте мне несколько советов, спасибо.
Вот мой полный код.
class TestQFile(QtCore.QFile):
def __init__(self, fileName):
super().__init__()
self.setFileName(fileName)
self.open(self.ReadOnly)
self.data = b''
while True:
receivedData = self.read(10)
self.data += receivedData
if receivedData == b'':
break
class TestHandler(QWebEngineUrlSchemeHandler):
def requestStarted(self, request):
self._dev = TestQFile("ken.js")
request.reply(b'text/javascript', self._dev)
class TestWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self._view = QWebEngineView(self)
self._handler = TestHandler() # Must keep ref
self._view.page().profile().installUrlSchemeHandler(b'myuri', self._handler)
self._view.setHtml('<html><head><title>Test</title></head><body><div id="d1"></div><script src="myuri://test/ken.js"></script></body></html>')
self.setCentralWidget(self._view)
self.show()
self.raise_()
if __name__ == '__main__':
app = QtWidgets.QApplication([])
win = TestWindow()
app.exec_()