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 :

Création d'un menu rempli dynamiquement


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut Création d'un menu rempli dynamiquement
    Bonjour à tous !

    Ne connaissant pas trop QT et ses possibilités, je viens à vous car j'ai un problème pour lequel je n'ai pas encore trouvé de solution.

    J'ai créé une barre de menu, tout ce qui a de plus simple avec une liste de sous-menu contenant le nom de certains pays. La liste de ces pays est lue à partir d'un fichier XML.

    Pour récupérer l'évènement du clic sur l'un des sous-menus, j'ai connecté cet évènement à un slot appelé "test()". Voici le code qui effectue cette opération :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    FenetrePrincipale::FenetrePrincipale(Collection * pCollection, QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::FenetrePrincipale)
    {
        ui->setupUi(this);
        m_pCollection = pCollection;
     
        // Récupération de la liste des pays
        QVector<Pays> vListePays = m_pCollection->GetListePays();
     
        // Récupération du nombre de pays
        long nNbPays = vListePays.size();
     
        // Parcours des pays pour les ajouter dans la barre de menu Pays
        for (int i=0; i<nNbPays; i++)
        {
            // Récupération du pays courant
            Pays pays = vListePays.at(i);
     
            // Récupération de son nom
            QString strNom = pays.GetNom();
     
            // Création d'un sous-menu correspondant au pays
            QAction * pAction = new QAction(this);
            pAction->setObjectName(strNom);
            pAction->setText(strNom);
            ui->menuPays->addAction(pAction);
     
            // Connection du QAction au slot test()
            connect(pAction, SIGNAL(triggered()), this, SLOT(test()));
        }
    }
     
    void FenetrePrincipale::test()
    {
        int test=0;
    }
    Le problème qui se pose est que je trouve pas comment faire pour savoir sur quel sous-menu, on a cliqué.

    Etant donné que je ne peux pas créer "statiquement" autant de slot qu'il y a de pays (vu qu'on ne les connait pas à l'avance), il faudrait que j'arrive à faire passer un paramètre au slot qui me permettra de me dire sur quel sous-menu on a cliqué.

    Si quelqu'un a une idée ou une autre solution, je suis preneur !

    Merci d'avance !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    Finalement, j'ai réussi à trouver. J'avais pas vu que l'on pouvait récupérer l'objet déclencheur d'un slot.
    C'était dans la FAQ... Hum...
    http://qt.developpez.com/faq/?page=s...re-ss-obj-decl
    Du coup, ça marche beaucoup mieux !

    @+!

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

Discussions similaires

  1. Création d'un menu de manière "dynamique"
    Par richard_sraing dans le forum Struts 1
    Réponses: 5
    Dernier message: 14/06/2013, 15h00
  2. Création d'un menu dynamique:
    Par koKoTis dans le forum Langage
    Réponses: 17
    Dernier message: 27/07/2012, 15h07
  3. Aide pour la création d'un menu dynamique
    Par manu11 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 11/11/2009, 23h30
  4. Création d'un menu contextuel dynamique.
    Par femfem dans le forum WinDev
    Réponses: 1
    Dernier message: 19/11/2007, 15h43
  5. Création d'un menu (de langue) dynamiquement
    Par neb-toi dans le forum Langage
    Réponses: 7
    Dernier message: 21/11/2005, 15h27

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