開いている QWebView がある場合、リンクのオプションとして「新しいウィンドウで開く」を含むデフォルトのコンテキスト メニューが気に入っています。ただし、ユーザーがリンクを新しいウィンドウで開くように要求したときに動作する方法を見つけることができないようです。ユーザーが新しいウィンドウでリンクを開くことを選択したときにメソッドが呼び出されないため、 QWebPage.createWindow メソッドをオーバーライドしても機能しないようです。
推奨事項はありますか?私はPyQtを使用しています。
コード例:
class LocalWebPage(QWebPage):
def acceptNavigationRequest(self, webFrame, networkRequest, navigationType):
print '*acceptNavigationRequest**',webFrame, networkRequest, navigationType
return QWebPage.acceptNavigationRequest(self, webFrame, networkRequest, navigationType)
def createWindow(self, windowType):
print '--createWindow', windowType
return QWebPage.createWindow(self, windowType)
class Browser(Ui_MainWindow, QMainWindow):
def __init__(self, base, name):
...
self.page = LocalWebPage()
self.webViewMain = QWebView(self.centralwidget)
self.webViewMain.setPage(self.page)
...
createWindow が呼び出されていないことを確認するために、そこにデバッグ プリントがあります。