4

「リンクを新しいウィンドウで開く」を処理して、QWebPage新しいウィンドウではなく新しいウィンドウを開き、前の QWebPage をスタックに保存して新しいウィンドウを表示するにはどうすればよいQWebView::setPage()ですか?

私はQt(およびC ++でさえ)が初めてです。スタックを修正する方法に関する推奨事項も高く評価されています。

4

1 に答える 1

5

QWebViewリンクが「リンク」の場合、同じリンクを強制的に開く

to にlinkDelegationPolicyを設定してQWebPageから、のシグナルをQWebPage::DelegateAllLinks キャッチし、シグナルの引数でを使用して新しいを作成できます。linkClickedQWebPageQWebPageurl

スタックに関しては、手動でも行うことができます。QList/を持ち、上記のシグナルからQVector新しいものを取得するたびに、現在のシグナルをスタックに追加してから、新しいシグナルを作成し、それをQWebPageQWebPageQWebPageQWebView::setPage()

また、 triggerActionをサブクラス化しQWebPageてから、要求されたアクションを確認し、基本クラス関数を呼び出して代わりQWebPage::OpenLinkInNewWindowにアクションを与えるかどうかを確認することもできます。QWebPage::OpenLink

これがすべての場合に機能するかどうかはわかりませんが、機能する場合は試してみる価値があります。

于 2012-11-19T14:13:24.457 に答える