Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] Envoyer des paramètres depuis le menu

    9 août 2008 à 15:30:55

    Bonjour,

    Je souhaiterais envoyer des paramètres quand l'utilisateur clique sur un élément du menu (QAction).

    Par exemple dans mon cas j'ai trois éléments de menus pour se rendre sur différents sites. J'ai ma fonction openURL(QString url) sauf que j'aimerais qu'url puisse avoir une valeur.

    Ainsi si on clique sur "Site officiel" dans le menu, ça enverra :

    openURL("http://test.com");

    Malheureusement trigerred() ne me permet pas d'envoyer des paramètres, ce qui m'embête fortement. J'ai chercher dans les classes parentes, j'ai pas trouvé grand chose...

    Avez-vous une solution à mon problème ? Dois-je dériver triggered ?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      9 août 2008 à 16:15:37

      Regarde du coté de Qhttp
      • Partager sur Facebook
      • Partager sur Twitter
      :)
        10 août 2008 à 0:25:43

        Je crois que tu n'as pas compris ce que je voulais dire...

        En fait quand j'écris ceci par exemple :

        connect(actionWebDoc, SIGNAL(triggered()), this, SLOT(openBrowser("http://www.playonlinux.com/en/documentation.html")));
        


        Ça compile correctement (le slot est bien placé dans ma classe) et quand j'exécute mon programme :

        Object::connect: No such slot Fenp::openBrowser("http://www.playonlinux.com/fr")
        Object::connect: No such slot Fenp::openBrowser("http://www.playonlinux.com/")
        Object::connect: No such slot Fenp::openBrowser("http://www.playonlinux.com/en/documentation.html")
        Object::connect: No such slot Fenp::openBrowser("http://www.playonlinux.com/en/forums.html")
        


        J'ai fait des recherches connexes et il semble qu'on ne puisse pas envoyer de paramètres avec connect !

        ALors avez vous une autre solution ?
        • Partager sur Facebook
        • Partager sur Twitter
          10 août 2008 à 0:51:57

          MyConstructor::MyConstructor() {
          connect(actionWebDoc, SIGNAL(triggered()), this, SLOT(openBrowser()));
          }
          void MyConstructor::openBrowser()
          {
              openUrl.setUrl("http://taratata.com");
          }
          


          non?
          • Partager sur Facebook
          • Partager sur Twitter
          :)
            10 août 2008 à 12:42:09

            Non. Car l'url serait envoyé lors de l'exécution de la fonction.

            Si je veux pouvoir ouvrir en tout 5 url j'aimerais ne pas avoir à faire 5 fonctions différentes...ça fait pas propre.

            Non il faut que ça revienne à faire :

            openBrowser("http://www.playonlinux.com/en/documentation.html");

            depuis le menu ^^

            Merci pour ton aide
            • Partager sur Facebook
            • Partager sur Twitter
              13 août 2008 à 22:58:35

              Up

              Bon j'ai une idée pour résoudre le problème :

              Y a t-il un moyen de connaitre grâce à une fonctions de Qt le QAction qui a exécuter la fonction en question ?

              Un peu comme ça :

              void openBrowser()
              {
                 if (GetActionParent() == actionSiteOfficiel) //avec actionSiteOfficiel un QAction
                   //j'ouvre l'url du site officiel
              }
              


              Connaissez vous une fonction équivalente ?

              Voilà merci d'avance...
              • Partager sur Facebook
              • Partager sur Twitter

              [Qt] Envoyer des paramètres depuis le menu

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown