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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top