Bonjour à tous,

Savez vous si il est possible de faire une condition "ou" sur l'appui de bouton ?

Je m'explique . Pour ceux qui m'on pas suivis, j'aimerais piloter un robot avec mon app. Pour ce faire, j'ai 4 boutons avancer, reculer, droite et gauche.

Pour le moment j'ai réussis à le faire avancer et reculer parfaitement(ce fut laborieux quand même ). Cependant je trouve mon code pas propre car, il utilise 2 méthodes par boutons ( pressed et released).
Ce qui me ferais au total 8 méthodes. c'est lourd ! ( mais faisable j'en convient) .

Etant perfectionniste, je souhaiterais savoir la faisabilité de connaitre si l'un de 4 boutons et pressé ou relâché alors j'effectue une méthode. Et le choix du bouton se fera dans la méthode.
Ainsi je n'aurais que 2 méthodes ( pressed et released). et à l'intérieur de ces deux méthodes, je regarde quel bouton à été pressé ou relâché ?

Voici une partie de mon Header :
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
//********************************************************************************************************
// Ici je créer mes slots public pour que l'utilisateur puisse s'en servir
//********************************************************************************************************
  public slots:
 
      void on_Bouton_Av_released();
      void on_Bouton_Av_pressed();      //slot click du bouton quand on click sur le bouton pour avancer
      void on_Bouton_Ar_released();
      void on_Bouton_Ar_pressed();     //slot click du bouton quand on click sur le bouton pour Reculer
 
      void on_BoutonConnexion_clicked();   // slot pour se connecter au port
      void on_BoutonDeconnexion_clicked(); // slot pour se DEconnecter du au port
 
//********************************************************************************************************
// Ici je créer des attributs privés pour ne pas que les utilisateurs puissent les modifiés
//********************************************************************************************************
private:
 
    Ui::MainWindow *ui;
    QSerialPort serial;		// Je créer un attribut de type QSerialPOrt que je nomme "serial"
 
    QByteArray trame_Av = QByteArray("\x02\x00\x06\x96\x80\x80\x80\x00\x80\x92",10);
    QByteArray trame_Ar = QByteArray("\x02\x00\x06\x64\x80\x80\x80\x00\x80\x60",10);
    QByteArray trame_St = QByteArray("\x02\x00\x06\x80\x80\x80\x80\x00\x80\x84",10);
 
 
 };
Et de mon .ccp :
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/**************************************************************************
                    méthodes
**************************************************************************/
 
/**************************************************************************
   Cette fonction envoi la trame pour AVANCER quand on clic sur le Bouton
   Le Bouton est configuré en auto-repaeat avec delay 100ms
**************************************************************************/
void MainWindow::on_Bouton_Av_pressed()
{
  if( ui->Bouton_Av->isDown() )
    {
      serial.write(trame_Av);  // J'envoie la trame au port serie
    }
    else
    {
        serial.write(trame_St); // J'envoie la trame au port serie
    }
}
 
//   Cette fonction envoi la trame pour ARRETER quand on relache le Bouton
void MainWindow::on_Bouton_Av_released()
{
    if( !ui->Bouton_Av->isDown() )
      {
        serial.write(trame_St);  // J'envoie la trame au port serie
      }
    else
     {
      serial.write(trame_Av);  // J'envoie la trame au port serie
     }
}
/**************************************************************************
   Cette fonction envoi la trame pour RECULER quand on clic sur le Bouton
   Le Bouton est configuré en auto-repaeat avec delay 100ms
**************************************************************************/
void MainWindow::on_Bouton_Ar_pressed()
{
  if( ui->Bouton_Av->isDown() )
    {
      serial.write(trame_Ar);  // J'envoie la trame au port serie
    }
    else
    {
        serial.write(trame_St); // J'envoie la trame au port serie
    }
}
//   Cette fonction envoi la trame pour ARRETER quand on relache le Bouton
void MainWindow::on_Bouton_Ar_released()
{
    if( !ui->Bouton_Ar->isDown() )
      {
        serial.write(trame_St);  // J'envoie la trame au port serie
      }
    else
     {
      serial.write(trame_Ar);  // J'envoie la trame au port serie
     }
}
Peut être existe-t-il d'autre façon de faire . Je suis preneur de chaque idée, pour m’améliorer !

Merci