Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.3.1 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

[Qt3] Faire un pavé numérique simplement pour un mot de pass

Hello,

Je souhaite faire un pavé numérique qui permet de rentrer un mot de passe qu'on valide ensuite par un bouton.

Pour le moment, je me suis fait 3 boutons, bt1, bt2, bt3, ayant chacun une action distincte, "reprendre le contenu de la case et y concaténer le chiffre qui lui correspond". C'est clair, ça marche mais ça me fait quand même 10 slots pour 10 boutons.

Je me demandais s'il n'était pas possible de simplifier les choses en passant en paramètre de la fonction le numéro du bouton. Vous me suivez ?

Il me semble que j'ai déjà vu ça en VB mais je pense que ça doit être possible avec QT ! Merci.

Réponses

  • Tu dois deriver QPushButton pour faire ca ...

    exemple tire d'un bouquin :
    class MyPushButton :public QPushButton
    {
    Q_OBJECT
    public:
    MyPushButton( int id, const QString& text, QWidget* parent,
    const char* name = 0 )
    :QPushButton( text, parent, name ), _id( id ) {
    connect( this, SIGNAL( clicked() ), this, SLOT( slotClicked() ) );
    }

    signals:
    void clicked( int );

    protected slots:
    void slotClicked()
    {
    emit clicked( _id );
    }
    private:
    int _id;
    };

    et voici un exemple d'usage de la chose :
    class Test :public QVBox {
    Q_OBJECT

    public:
    Test( QWidget* parent, const char* name = 0 ) {
    for ( int i = 0; i < 10; ++i ) {
    MyPushButton* but =
    new MyPushButton( i, QString("Button %1").arg(i), this );
    connect( but, SIGNAL( clicked( int ) ),
    this, SLOT( clicked( int ) ) );
    }
    }
    protected slots:
    void clicked( int i ) {
    qDebug("Button %d was pressed", i );
    }
    };
    Joyeux noel !!!
  • Merci beaucoup pour tes précieux conseils moutDeRaisin. :)

    Néanmoins, je vais passer pour un bon newbie en te demandant comment utiliser ce code.

    J'utilise QT Designer pour poser mes boutons, comment faut-il que je m'y prenne pour poser des "MyPushButton" ? Où dois-je copier le code ? Tout ce que je fais jusqu'à présent c'est créer quelques connexions et slots avec des actions que je modifie dans mon .ui.h. Désolé d'être aussi nul. :oops: Faut-il créer un "Custom Wiget" ?

    De quel ouvrage tires-tu cet exemple ? En aurais-tu un à me conseiller ?

    Je te souhaite également un Joyeux Noël. :D

    P.S. : Prochain topics de newbies à venir :
    - Réactualiser une horloge proprement (même en suivant l'exemple analog clock je me galère :-/)
    - Se passer des images collection et indiquer un chemin en dur.
    - Remplir une QTable en interrogeant une base mySQL, pareil, je comprends pas trop l'exemple. :(
    - Ajouter à cette QTable une colonne QComboTableItem (Présent/Absent/En retard) pour chaque élève importé.

    De quoi t'embêter jusqu'au nouvel an au moins. :oops:
  • Hello !

    Pour integrer le MyPushButton a QtDesigner, je pense en effet qu'il faut mettre ca dans les customs widgets .... N'utilisant jamais QtDesigner je ne saurais te dire comment faire ... Mais je ne doute pas un seul instant que Trolltech ne fournisse pas un exemple pour t'aider a faire cela ...

    Te conseiller un bouquin ? En premier lieu, il faut debuter a mon avis par celui en Francais. Tu peux le commander sur ce site. Il est assez vite digere et te permettra d'etre a l'aise avec les bases et de pouvoir t'attaquer a des trucs plus hardus par la suite.
    Dans un 2eme temps, tu peux te plonger dans la reference actuelle : C++ GUI Programming with Qt 3 (en anglais). Il existe une version pdf sur le net a telecharger meme si l'achat du bouquin te permet d'obtenir Qt 3.2.1 par la meme occasion.
    Sinon, l'exemple je l'ai tire de Practical Qt, un bon bouquin avec de bonnes idees a piocher, mais j'ai deja trouve quelques coquilles dedans quand meme.

    Pour le reste de tes questions, n'hesites pas a fouiller dans les exemples fournit avec Qt, il y a de bonnes choses a piocher aussi la dedans.

    voili !
Connectez-vous ou Inscrivez-vous pour répondre.