IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

QWebView : liens en local et externe


Sujet :

Qt

  1. #1
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut QWebView : liens en local et externe
    Bonjour,

    J'ai un petit soucis avec mon appli.
    J'ai une qwebview qui affiche des pages en local, et qui ouvre des liens externe avec le navigateur par défaut. Jusqu'ici, pas de soucis.

    Par contre, je voudrais pouvoir ouvrir un .exe (appli portable) en local, ou un pdf également. Mais avec le LinkDelegationPolicy, il semble que ce ne soit pas faisable ?

    Quelqu'un aurait une idée svp ?
    Merci d'avance,
    Très cordialement,

    ANDRE Ani
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  2. #2
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Bonjour,

    J'ai essayé de créer un slot connecté à la webview mais j'ai une erreur semble t il, car rien ne se passe quand je clic sur le lien vers l'exe (ou un pdf).

    Voila un peu le code que j'utilise :

    dans le mainwindow.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private slots:
        void on_webView_linkClicked(const QUrl & url);
    Dans le mainwindow.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    connect(ui->webView,SIGNAL(on_webView_linkClicked(const QUrl)), this,SLOT(on_webView_linkClicked(const QUrl)),Qt::DirectConnection);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void MainWindow::on_webView_linkClicked(const QUrl & url)
    {
        QDesktopServices::openUrl(url);
    }
    J'ai ce message pendant l'utilisation :
    QObject::connect: No such signal QWebView::on_webView_linkClicked(const QUrl)
    QObject::connect: (sender name: 'webView')
    QObject::connect: (receiver name: 'MainWindow')

    Pas d'erreur à la compil.

    Si quelqu'un voit ce qui ne va pas ?

    Merci d'avance,
    Très cordialement,

    ANDRE Ani
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  3. #3
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Après quelques modifications, je n'ai plus de message d'erreur, mais il ne se passe toujours rien quand je clic sur les liens vers le pdf ou l'exe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private slots:
        void on_webView_linkClicked(const QUrl & url);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    connect(ui->webView, SIGNAL(linkClicked(const QUrl)), this, SLOT(on_webView_linkClicked(const QUrl)));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void MainWindow::on_webView_linkClicked(const QUrl & url)
    {
        QDesktopServices::openUrl(url);
    }
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  4. #4
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Bonjour,

    Je pense avoir trouvé le soucis. Ce sont les chemins relatifs.
    Mon appli sera sur clé USB, donc je ne peux pas mettre le chemin absolu, qui changera suivant le pc où elle est branchée.

    Et je ne sais pas comment faire pour récupérer le chemin relatif de l'exe ou du pdf pour le lancer avec QDesktopServices::openUrl(url);

    Si quelqu'un pouvait m'aider un peu svp ?
    Merci d'avance,

    Très cordialement,

    ANDRE Ani
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  5. #5
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Toujours bloqué...

    J'ai des liens comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <a href="..\pages\contact.html" alt="contact">contact html</a>
    <br>
    <a href="http://blog.fr" target="_blanck" alt="lien blog">blog html</a>
    <br>
    <a href="..\applis\guide-libre.pdf" target="_blanck" alt="fichier pdf</a>
    Les 2 premiers marche, (avec delegateExternalLinks) et ce code pour les liens (j'ai copié le if / else mais je ne sais pas trop si j'en ai besoin en fait) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    void MainWindow::on_webView_linkClicked(const QUrl & url)
    {
         if (url.toString()[0] == 'f'){
         QUrl url;
     
         QString lienLocalFichier = url.toLocalFile();
         QString cheminApplication = QCoreApplication::applicationFilePath();
         url = QUrl::fromLocalFile(cheminApplication + lienLocalFichier);
         QDesktopServices::openUrl(url);
         }
         else
            QDesktopServices::openUrl(url);
        }
    Si quelqu'un pouvait m'aider svp, je ne sais plus quoi faire, je suis complètement bloqué depuis plusieurs jours la dessus...

    Merci d'avance,

    ANDRE Ani
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro mise à jour de liens sur des classeurs externes (excel)
    Par Border_xls dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/11/2007, 10h04
  2. [VBA-E]enlever les liens d'une requete externe
    Par arnogef dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/02/2006, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo