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 :

Utilisation de QKeyEvent

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 20
    Points
    20
    Par défaut Utilisation de QKeyEvent
    Bonjour,

    J'essaie de programmer le passage d'un QLineEdit à une autre lorsque l'une des touches ' enter' ou 'flèche bas' est pressée .
    Pourriez-vous m'aider à écrire le code approprié.
    Merci d'avance.



    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
    38
    39
    40
    41
    42
    43
     
     
    //fenetre.cpp
    //--------------------
    #include "fenetre.h"
    #include<QtGui>
    #include <QLineEdit>
     
    fenetre::fenetre()
    {
     
    this->NumDonne1 = new QLineEdit(this);
    //  NumDonne1->setGeometry(210,53,45,26);
     //------------------------------
    this->NumDonne2 = new QLineEdit(this);
      NumDonne2->setGeometry(210,153,45,26);
     //------------------------------
    this->NumDonne3 = new QLineEdit(this);
      NumDonne3->setGeometry(210,253,45,26);
     //------------------------------
    this->NumDonne4 = new QLineEdit(this);
      NumDonne4->setGeometry(210, 353,45,26);
     //------------------------------
     
    NumDonne3->setFocus();
     
     
    leCollection.append(NumDonne1);
    leCollection.append(NumDonne2);
    leCollection.append(NumDonne3);
    leCollection.append(NumDonne4);
     
     
    foreach(QWidget *wdg, leCollection)
    {
     //wdg->installEventFilter(this);
    }
     
    //----------------------------
    }
    //---------------------------------------
    fenetre::~fenetre(){}
    //---------------------------------



    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
     
     
    //fenetre.h
    //------------- 
    #ifndef FENETRE_H
    #define FENETRE_H
    #include <QtGui/QMainWindow>
    # include <QLineEdit>
    #include <QLineEdit>
     
     
    class fenetre : public QWidget
    {
        Q_OBJECT
    public:
     
       fenetre();
        ~fenetre();
     
     
    QLineEdit *NumDonne1 ;
    QLineEdit *NumDonne2 ;
    QLineEdit *NumDonne3 ;
    QLineEdit *NumDonne4 ;
     
     
    QList<QObject*> leCollection;
     
     
    public slots:
     
     };
     
    #endif // FENETRE_H


    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
     
     
    //main.cpp
    //------------
     
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
     
        fenetre h;
         h.setGeometry(100,100,300,300);
     
        h.show();
        return a.exec();
    }

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Où est donc la surcharge de : keyPressEvent() ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre expérimenté

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Dans qwidget.cpp, voici le code qui fait fonctionner le déplacement de focus avec Tab ou shift+Tab :

    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
    bool QWidget::event(QEvent *event)
    {
        Q_D(QWidget);
     
        // ignore mouse and key events when disabled
        if (!isEnabled()) {
            switch(event->type()) {
        // [...]
        case QEvent::KeyPress: {
            QKeyEvent *k = (QKeyEvent *)event;
            bool res = false;
            if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) {  //### Add MetaModifier?
                if (k->key() == Qt::Key_Backtab
                    || (k->key() == Qt::Key_Tab && (k->modifiers() & Qt::ShiftModifier)))
                    res = focusNextPrevChild(false);
                else if (k->key() == Qt::Key_Tab)
                    res = focusNextPrevChild(true);
                if (res)
                    break;
            }
            keyPressEvent(k);
    Donc il faut faire pareil dans ta réimplémentation de keyPressEvent.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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