Aprire un browser esterno da QWebView
Domanda
ho una "pagina di start" sulla mia applicazione che è solo un widget QWebView
che scarica una pagina dal mio server.
Quando l'utente fa clic su un link che vorrei per aprire nel browser di default, non è nel widget.
C'è un modo per fare questo con QWebView
? O dovrei adottare un approccio diverso?
Soluzione
Basta chiamare QWebPage :: setLinkDelegationPolicy (QWebPage :: DelegateAllLinks) quindi collegare il segnale di QWebView :: LinkClicked (const qurl & url) ad uno slot, e nella fessura eseguire il browser. Scoprire ciò che il browser predefinito è, è un po 'più complicata e dipende da quale desktop utente è in esecuzione. Il browser variabile d'ambiente spesso contiene il default.
In alternativa, utilizzare QDesktopServices :: OpenURL [come suggerito da gnud in un commento]
Altri suggerimenti
Supponendo i collegamenti sono esterni, si può chiamare QWebView :: setOpenExternalLinks (true) sul tuo widget QWebView. La proprietà è false per impostazione predefinita; impostandola a true provoca link esterni per aprire nel browser predefinito Web.