Bonjour à tous et bonne année !

J'ai fais un petit projet en C++ permettant de contrôler deux trains électriques.
J'ai entièrement codé mon programme avec QT Creator et je suis sous Linux.
J'aimerai mettre un sleep dans mon code afin que la vitesse du train diminue progressivement mais même en mettant sleep(1); cela bloque le programme.
De plus je voudrais qu'il soit possible de pouvoir utiliser les autres fonctions du programme pendant que la boucle tourne.
Pour faire ça dois-je passer par le multi-threading ?...

J'espère avoir été assez clair et vous remercie 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
 
connect(Arret2, SIGNAL(clicked()), this, SLOT(ActionArret2()));
 
void FenPrincipale::ActionArret2()
{
      Arret2->setPalette(QPalette(QColor(0, 255, 0, 255)));
      Marche2->setPalette(QPalette(QColor(255, 255, 255, 255)));//Blanc
      if (ADauto2->isChecked()==true)
      {
          int vitesse2 = slider2->value();
          for(vitesse2 ; vitesse2>=0 ; vitesse2--)
          {
              sleep(1);
              slider2->setSliderPosition(vitesse2);
          }
      }
}