Como fazer um QGRAPHSTEXTITEM Clickable?
-
26-09-2019 - |
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?
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>"));