Comment faire un cliquable QGraphicsTextItem?
-
26-09-2019 - |
Question
Dans la « boîte À propos » de mon logiciel, j'ai utilisé un QGraphicsTextItem
pour montrer le texte au sujet.
Ce texte contient des liens hypertextes (sous forme de: <a href="http://some.random.site">link</a>
).
L'élément apparaît correctement (liens hypertextes sont bleus et soulignés). Cependant, lorsque je clique sur eux, rien ne se passe.
Voici comment j'ai créé le QGraphicsTextItem
:
d_about_text_item = new QGraphicsTextItem;
d_about_text_item->setTextInteractionFlags(Qt::TextBrowserInteraction);
d_about_text_item->setHtml(aboutText());
Si je comprends bien le documentation Qt , l'appel à setTextInteractionFlags
devrait me permettre de gérer les liens hypertextes spéciaux cliquez sur les événements.
Y at-il autre chose que je dois faire pour être en mesure de cliquer sur les liens et afficher la page liée dans le navigateur par défaut du système?
La solution
J'ai trouvé ce que je fait de mal:
Mon contenant QGraphicsView
avait setInteractive()
ensemble à false
. Je l'ai supprimé et depuis maintenant, il fonctionne très bien.
Autres conseils
FWIW J'utilise la norme QMessageBox :: sur la méthode et passer simplement HTML brut comme le texte -. Liens beau travail
QMessageBox::about(this, tr("About"), tr("<h1>My App</h1><p><a href='www.stackoverflow.com'>Click me!</a></p>"));