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

Discussion :

Signaux et boutons dynamiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut Signaux et boutons dynamiques
    Bonjour à tous,

    J'ai un petit soucis, je n'arrive pas a récupérer le signal d'un clic sur un bouton que je crée dynamiquement...

    Voici comment je procède :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // Je créé autan de bouton que d'éléments dans mon qstringlist FullNameSite
    for (int i=0; i<qsl_FullNameSite.size(); i++)
        {
            QPushButton *btSite = new QPushButton(qsl_FullNameSite [i], this);
            btSite -> resize (291,23);
            btSite -> move (10,330 + 30*i);
    // Je renomme mon bouton par les 7 premier caractères du qsl correspondant 
            btSite -> setObjectName (qsl_FullNameSite [i].mid (0, 7));
            ui -> btAddSite -> move (100, 360 + 30*i);
     
            setFixedSize(740, 391 + 30*i);
        }
    Ensuite j'aimerai savoir quand je clic sur ces boutons.

    J'ai essayé de mettre un connect dans la boucle mais sans succès. J'ai aussi essayé l'autoconnect mais avec un nom variable ça ne marche pas.

    Merci pour vos lumières

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    J'ai mis les Objects name dans une liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ql_Sites.insert (i,btSite);
    c'est plus propre et ça me permet de pointer par la suite sur le bouton de mon choix mais je n'arrive toujours pas à détecter l'évènement du clic

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Est-ce que ce tutoriel ne t'aiderait pas : http://qt-quarterly.developpez.com/qq-10/signalmapper/ ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    Le top merci.

    Je n'étais pas tombé sur ce tuto.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    Finalement je n'y arrive pas même avec 2 tutos : http://qt-quarterly.developpez.com/qq-10/signalmapper/ et http://qt.developpez.com/faq/?page=s...re-ss-obj-decl

    Tout compile mais quand je clique sur un de mes boutons rien ne se passe... Pourtant je pense avoir suivi à la lettre les exemples.

    .h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <QSignalMapper>
    public :     
    QList <QPushButton*> qlbt_Sites;
    QSignalMapper *signalMapper;
    public slots :
        void SiteClicked (const QString qs_RO);
    .cpp
    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
     
    void DDBGobalView::AddSiteButton (int i)
    {
        // Crée les boutons
        QPushButton *btSite = new QPushButton (qsl_FullNameSite [i], this);
        qlbt_Sites.insert (i,btSite);
        signalMapper    -> setMapping (qlbt_Sites [i], qsl_FullNameSite [i].mid (0, 7));
        QObject::connect(qlbt_Sites [i], SIGNAL(clicked()), signalMapper, SLOT(map()));
        qlbt_Sites [i]  -> show ();
    }
    ...
    void DDBGobalView::SiteClicked(const QString qs_RO)
    {
        QMessageBox::information(0, QObject::tr("Succès"), qs_RO);
    }
    ...
    void DDBGobalView::read ()
    {    signalMapper = new QSignalMapper(this);
        connect(signalMapper, SIGNAL(mapped(const QString &)), this, SIGNAL(SiteClicked(int)));
        for (int i = 0; i < qsl_FullNameSite.size (); i++)
        {
            AddSiteButton (i);
        }

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(signalMapper, SIGNAL(mapped(const QString &)), this, SIGNAL(SiteClicked(int)));
    Y'a un souci ici non ?

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

Discussions similaires

  1. [VBA-E] bouton dynamique avec fonction
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 38
    Dernier message: 06/02/2006, 12h43
  2. changer image d'un bouton dynamiquement
    Par Dnx dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/11/2005, 13h03
  3. [VB.Net] usercontrol static et bouton dynamique
    Par krest dans le forum ASP.NET
    Réponses: 19
    Dernier message: 26/07/2005, 17h43
  4. [Forms] Bouton dynamique
    Par lafouine dans le forum Forms
    Réponses: 4
    Dernier message: 20/07/2005, 10h24
  5. Réponses: 2
    Dernier message: 20/01/2004, 14h27

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