我需要使用 pyQt5 打开一个 URL。该页面有几个链接可以打开一个新窗口。pyQt5 为 URL 打开一个窗口,但在单击应该打开一个新窗口的链接后不执行任何操作。PS我正在使用pyQt5.6
我已经在 Linux centOs 上尝试过,但没有任何效果。
from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QDesktopServices
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
class WebEnginePage(QWebEnginePage):
def acceptNavigationRequest(self, url, _type, isMainFrame):
if _type == QWebEnginePage.NavigationTypeLinkClicked:
return True
return QWebEnginePage.acceptNavigationRequest(self, url, _type, isMainFrame)
class HtmlView(QWebEngineView):
def __init__(self, *args, **kwargs):
QWebEngineView.__init__(self, *args, **kwargs)
self.setPage(WebEnginePage(self))
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = HtmlView()
w.load(QUrl("https://gmail.com"));
w.show()
sys.exit(app.exec_())
我希望它在任何网页上单击 target='_blank' 时打开一个新窗口。