Один QWebView -> Много QWebPage - PullRequest
       3

Один QWebView -> Много QWebPage

4 голосов
/ 11 октября 2010

Как можно обработать «Открыть ссылку в новом окне», чтобы открыть новое QWebPage вместо нового окна, сохранив предыдущий QWebPage в стеке и отобразив новое с QWebView::setPage()?

Я новичок в Qt (и даже в C ++), также приветствуется рекомендация по исправлению стека.

1 Ответ

5 голосов
/ 19 ноября 2012

для принудительного открытия ссылок в том же QWebView, если они являются "ссылками"

Вы можете установить linkDelegationPolicy для QWebPage до QWebPage::DelegateAllLinks а затем поймать linkClicked сигнал QWebPage и создать новый QWebPage с url в аргументе сигнала

Что касается стека, вы можете сделать это и вручную. Имейте QList / QVector и всякий раз, когда вы получаете новый QWebPage из вышеприведенного сигнала, добавляйте текущий QWebPage в стек, а затем создайте новый QWebPage и установите его как QWebView::setPage()

вы также можете попробовать создать подкласс triggerAction в QWebPage, а затем проверить запрошенное действие, и если QWebPage::OpenLinkInNewWindow вызвать функцию базового класса и вместо этого дать действие как QWebPage::OpenLink.

Не уверен, что это будет работать во всех случаях, но стоит попробовать, если это сработает для вас.

...