pyqt5 HTML окно не отображается

После того, как я написал этот код, окно не отображается, но в терминале отображаются сообщения консоли.

Я попытался добавить несколько дополнительных операторов импорта PyQT5, но ничего не работает

class MyPage(QWebEnginePage): def __init__(self, parent=None): super(MyPage, self).__init__(parent) def triggerAction(self, action, checked=False): if action == QWebEnginePage.OpenLinkInNewWindow: self.createWindow(QWebEnginePage.WebBrowserWindow) return super(MyPage, self).triggerAction(action, checked) class MyWindow(QtWebEngineWidgets.QWebEngineView): def __init__(self, parent=None): super(MyWindow, self).__init__(parent) self.myPage = MyPage(self) self.setPage(self.myPage) def createWindow(self, windowType): if windowType == QWebEnginePage.WebBrowserTab: self.webView = MyWindow() self.webView.setAttribute(Qt.WA_DeleteOnClose, True) self.webView.show() return self.webView return super(MyWindow, self).createWindow(windowType) if __name__ == "__main__": import sys app = QApplication(sys.argv) app.setApplicationName('MyWindow') main = MyWindow() main.show() main.load(QUrl("https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_a_target")) sys.exit(app.exec_()) 

Нужно знать точные операторы импорта и отображать окно, где просматривается HTML.

Всего 1 ответ


Есть ошибка с размером QWebEngineView, которая имеет решение вручную установить размер:

 from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets class MyPage(QtWebEngineWidgets.QWebEnginePage): def triggerAction(self, action, checked=False): if action == QtWebEngineWidgets.QWebEnginePage.OpenLinkInNewWindow: self.createWindow( QtWebEngineWidgets.QWebEnginePage.WebBrowserWindow ) return super(MyPage, self).triggerAction(action, checked) class MyWindow(QtWebEngineWidgets.QWebEngineView): def __init__(self, parent=None): super(MyWindow, self).__init__(parent) self.myPage = MyPage(self) self.setPage(self.myPage) def createWindow(self, windowType): if windowType == QtWebEngineWidgets.QWebEnginePage.WebBrowserTab: webView = MyWindow(self) webView.setAttribute(QtCore.Qt.WA_DeleteOnClose, True) webView.resize(640, 480) # <---- webView.show() return webView return super(MyWindow, self).createWindow(windowType) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) app.setApplicationName("MyWindow") main = MyWindow() main.resize(640, 480) # <---- main.show() main.load( QtCore.QUrl( "https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_a_target" ) ) sys.exit(app.exec_()) 

Есть идеи?

10000