Откройте внешний браузер из QWebView
Вопрос
В моем приложении есть «стартовая страница», которая представляет собой просто QWebView
виджет, который загружает страницу с моего сервера.
Когда пользователь нажимает на ссылку, я бы хотел, чтобы она открывалась в его браузере по умолчанию, а не в виджете.
Есть ли способ сделать это с помощью QWebView
?Или мне следует использовать другой подход?
Решение
Просто вызовите QWebPage::setLinkDelegationPolicy(QWebPage::DelegateAllLinks), затем подключите сигнал QWebView::linkClicked (const QUrl и url) к слоту, и в слоте запустите браузер.Выяснить, какой браузер используется по умолчанию, немного сложнее и зависит от того, на каком рабочем столе работает пользователь.Переменная среды BROWSER часто содержит значение по умолчанию.
Или используйте QDesktopServices::openUrl [как предложил gnud в комментарии]
Другие советы
Предполагая, что ссылки внешние, вы можете просто позвонить QWebView::setOpenExternalLinks (истина) в вашем виджете QWebView.По умолчанию свойство имеет значение false;установка значения true приводит к открытию внешних ссылок в веб-браузере по умолчанию.