Comment faire en sorte qu'un QLabel se comporte comme un lien ? Ce que je veux dire, c'est que j'aimerais pouvoir cliquer dessus et que cela déclenche une commande.
Réponses
Trop de publicités?QLabel le fait déjà .
Exemple de code :
myLabel->setText("<a href=\"http://example.com/\">Click Here!</a>");
myLabel->setTextFormat(Qt::RichText);
myLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
myLabel->setOpenExternalLinks(true);
La réponse de cmannnett85 convient si vous souhaitez simplement ouvrir une URL lorsque vous cliquez sur le lien et si vous êtes d'accord pour intégrer cette URL dans le champ de texte de l'étiquette. Si vous voulez faire quelque chose de légèrement personnalisé, faites ceci :
QLabel * myLabel = new QLabel();
myLabel->setName("myLabel");
myLabel->setText("<a href=\"whatever\">text</a>");
myLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
Vous pouvez ensuite connecter le linkActivated
de l'étiquette à un emplacement, et faites ce que vous voulez dans cet emplacement. (Cette réponse suppose que vous avez une familiarité de base avec les signaux et les slots de Qt).
La fente pourrait ressembler à quelque chose comme ceci :
void MainWindow::on_myLabel_linkActivated(const QString & link)
{
QDesktopServices::openUrl(QUrl("http://www.example.com/"));
}