Pergunta

Na "caixa sobre a caixa" do meu software, usei um QGraphicsTextItem Para mostrar o texto sobre o texto.

Este texto contém links de hipertexto (na forma de: <a href="http://some.random.site">link</a>).

O item aparece corretamente (os links de hipertexto são azuis e sublinhados). No entanto, quando clico neles, nada acontece.

Aqui está como eu criei o QGraphicsTextItem:

d_about_text_item = new QGraphicsTextItem;
d_about_text_item->setTextInteractionFlags(Qt::TextBrowserInteraction);
d_about_text_item->setHtml(aboutText());

Como eu entendo o Documentação QT, a chamada para setTextInteractionFlags deve me permitir lidar com links especiais de hipertexto, clique em eventos.

Há mais alguma coisa que eu deveria fazer para poder clicar nos links e mostrar a página vinculada no navegador do sistema padrão?

Foi útil?

Solução

Eu encontrei o que fiz de errado:

Meu contendo QGraphicsView teve setInteractive() definido como false. Eu o removi e, desde agora, funciona bem.

Outras dicas

FWIW Eu uso o qMessageBox :: Sobre o método e simplesmente passe o HTML bruto como os links de texto - funcionam bem.

QMessageBox::about(this, tr("About"), tr("<h1>My App</h1><p><a href='www.stackoverflow.com'>Click me!</a></p>"));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top