2009-04-12 3 views
4

У меня есть «стартовая страница» в моем приложении, которая является всего лишь QWebView виджетами, которые загружают страницу с моего сервера.Открыть внешний браузер от QWebView

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

Есть ли способ сделать это с помощью QWebView? Или я должен использовать другой подход?

ответ

13

Просто позвоните QWebPage :: setLinkDelegationPolicy (QWebPage :: DelegateAllLinks), затем подключите к слоту сигнал QWebView :: linkClicked (const QUrl &) в слот, а в слоте выполните браузер. Узнайте, что такое браузер по умолчанию, немного сложнее и зависит от того, на каком рабочем столе работает пользователь. Переменная среды BROWSER часто содержит значение по умолчанию.

Или использовать QDesktopServices::openUrl [как это было предложено gnud в комментарии]

+1

Чтобы открыть браузер, используйте QDesktopServices :: openUrl - http://doc.trolltech.com/4.5/qdesktopservices.html#openUrl – gnud

0

Если предположить, что ссылки являются внешними, вы можете просто позвонить QWebView::setOpenExternalLinks(true) на вашем QWebView виджета. По умолчанию свойство false; установив его в true, внешние ссылки открываются в вашем браузере по умолчанию.