Voilà une fonction qui marche assez bien pour ouvrir les fichiers (ou des liens internet) à partir d'un lien hypertexte :
1 2 3 4 5 6 7 8 9 10 11 12
| void LienHyperTexte(const QUrl &lien)
{
if (lien.toString()[0] == 'f'){
QUrl url;
QString lienLocalFichier = lien.toLocalFile();
QString cheminApplication = "file:///" + QCoreApplication::applicationDirPath();
url = QUrl::fromLocalFile(cheminApplication + lienLocalFichier);
QDesktopServices::openUrl(url);
}
else
QDesktopServices::openUrl(lien);
} |
lancée à partir d'un signal/slot de type :
connect(ui->tonWidget, SIGNAL(anchorClicked(const QUrl &)),this, SLOT(LienHyperTexte(const QUrl &)));
Ton hyperlien pourrait être inscrit de cette manière dans ton widget (ici un QTextBrowser)
ui->tonWidget->append(QString("<a href=\"file:///Database/monFichier.pdf\">monFichier</a>"));
Par contre, pour empêcher les liens hypertexte de s'ouvrir en mode ASCII dans le QTextBrowser, ne pas oublier dans le constructeur :
ui->tonWidget->setOpenLinks(false);
Bon courage
Partager