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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut [Qt 5] Nouvelle syntaxe pour les signaux et slots : comment distinguer les signaux selon leurs arguments ?
    Suite de http://www.developpez.net/forums/d13...-slots-qt-5-a/.

    Merci! Ce nouveau fonctionnement est plus pratique.

    Par contre, j'aurais aimé savoir si une solution existe lorsqu'il existe plusieurs implémentation de signaux du même nom.
    Example (http://qt-project.org/doc/qt-5.0/qtw...rentIndex-prop)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void	currentIndexChanged(int index)
    void	currentIndexChanged(const QString & text)
    Comment compiler avec l'un des deux signaux ?

    Si c'est possible, ce serait génial de la rajouter.
    Le seul moyen que j'ai trouvé, c'est d'utiliser l'ancien fonctionnement des signaux/slots.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il faut utiliser static_cast comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // utilisation de : void currentIndexChanged(int index)
    connect(
        comboBox,
        static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
        /* ... */);
     
    // utilisation de : void currentIndexChanged(const QString & text)
    connect(
        comboBox,
        static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
        /* ... */);
    Ou depuis la version Qt 5.7 / C++14 avec qOverload() (et dérivés qConstOverload() / qNonConstOverload()) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    QComboBox * comboBox = new QComboBox;
     
    // utilisation de : void currentIndexChanged(int index)
    connect(
        comboBox,
        qOverload<int>(&QComboBox::currentIndexChanged),
        /* ... */);
     
    // utilisation de : void currentIndexChanged(const QString & text)
    connect(
        comboBox,
        qOverload<const QString &>(&QComboBox::currentIndexChanged),
        /* ... */);
    Dernière modification par Invité ; 05/09/2022 à 22h36.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    Merci pour le tip!

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 21/11/2014, 18h50
  2. Réponses: 1
    Dernier message: 26/06/2007, 12h26
  3. Réponses: 5
    Dernier message: 03/08/2006, 16h13
  4. Réponses: 2
    Dernier message: 13/07/2006, 09h21
  5. Réponses: 6
    Dernier message: 03/05/2006, 11h01

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