Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QComboBox et mollette souris



  • Bonjour,

    Quand je pointe une ComboBox avec la souris (sans cliquer) et que je fait rouler la mollette alors l'item courant change, je voudrais désactiver cette fonctionnalité. Des Idées .



  • Bonjour,

    je pense que filtrer QWheelEvent pour le QComboBox serait un bon point de départ.



  • OK,

    J'ai regardé ça, mais en voulant surcharger la fonction :

    void QComboBox::wheelEvent(QWheelEvent *e){
        qDebug()<<"test";
    }
    
    

    J'ai le Warning :
    QComboBox::wheelEvent redeclare without 'dllimport' attribute: previous 'dllimport' ignored

    Et mon qDebug n'est jamais affiché.



  • @M-Cocktail said in QComboBox et mollette souris:

    QComboBox::wheelEvent redeclare ...

    Montrez votre fichier .h?

    EDIT Attendez! Ca doit etre [override virtual protected]. Alors, vous ecrivez

    void QComboBox::wheelEvent(QWheelEvent *e)
    

    mais il faut sous-classer (sub-class) QComboBox pour surcharger cette fonction. Ecrivez votre classe, et la vous aurez

    void MySubClassedComboBox::wheelEvent(QWheelEvent *e)
    


  • Je viens de réussir à faire ce que je voulais, avec la fonction eventFIlter

    bool Classe::eventFilter(QObject* obj,QEvent* ev){
        if(ev->type()==QEvent::Wheel){
                return true;
        }
        return false;
    }
    


  • @M-Cocktail
    Je viens d'avoir reponder au dessus! Lisez svp :)

    Ou bien, vous pouvez faire ce que vous avez ecrit avec eventFilter.


Log in to reply