Pergunta

Eu tenho "página inicial" A minha aplicação que é apenas um widget QWebView que transfere uma página do meu servidor.

Quando o usuário clica em um link que eu gostaria que ele abra em seu navegador padrão, não no widget.

Existe uma maneira de fazer isso com QWebView? Ou eu deveria ter uma abordagem diferente?

Foi útil?

Solução

Apenas chamada QWebPage :: setLinkDelegationPolicy (QWebPage :: DelegateAllLinks), em seguida, conecte o QWebView sinal :: LinkClicked (const qurl & url) para um slot, e no slot executar o browser. Descobrir o que é o navegador padrão, é um pouco mais complicado e depende de qual área de trabalho do usuário está executando. O navegador variável de ambiente muitas vezes contém o padrão.

Ou use QDesktopServices :: OpenURL [como sugerido por gnud em um comentário]

Outras dicas

Assumindo que as ligações são externos, você pode apenas chamar QWebView :: setOpenExternalLinks (true) em seu widget QWebView. A propriedade é falso por padrão; definindo-o como verdadeiras causas ligações externas para abrir em seu navegador padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top