Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top