Bonjour, je m'excuse d'avance pour mes incomprehensions. Pourquoi?! voila je commence la programmation et j'admets bruler beaucoup d'étapes mais je préfère etre motivé par un projet personnel que d'ecrire "hello world!", je n'ai donc pas fait tous les exercices des tutoriaux.

Heureusement qu'il y a des libs car sinon je ne vois pas comment j'aurais pu faire pour la webcam en c++.

mais deja j'ai rencontré des problemes pour utiliser plusieurs librairies en meme temps car une seule ne fait pas tout! Voila un petit tutorial a faire quand je maitriserai bien. lol

voici mon projet : capter via une webcam les films super8 de la famille en modifiant un projecteur.

pour la capture j'ai utilise la lib openCV. ca c'est fait!
pour l'interface graphique utilisateur je me suis dit Qt ca a l'air bien... oui pour faire des options a cocher, des boutons, demarrer, stop etc...

mais je m'eloigne...

il faut maintenant que je sois prevenu quand le bouton du milieu de ma souris est cliqué (en fait mon installation clique sur le bouton quand l'image est bien dans la fenetre du projecteur)
n'ayant pas trouvé d'objet tout fait (ou de class toute faite, j'ai encore du mal.) je dois en creer un : le voici...

souris.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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
#ifndef SOURIS_h
#define SOURIS_h
 
#include <QThread>
#include <QEvent>
 
class Souris : public QThread
{
  Q_OBJECT
 
  public:
  //constructeur
    Souris(unsigned long milliSec);
  //accesseur
    void setSleep(unsigned long milliSec);
  //destructeur
    virtual ~Souris();
 
  protected:
    void run();
 
  public slots:
    void changerSleepSouris(unsigned long milliSec);
    void resetCompteur
 
  signals:
    void changementEtatBoutonSourisM( bool etatBoutonMilieu, unsigned long m_compteurClicMilieu);
    void clickBoutonMilieu ( unsigned long m_compteurClicMilieu );
 
  private:
    // QMouseEvent objSouris;
    // QEvent * generalEvent;
    unsigned long m_milliSec; // pour eviter les rebonds
    unsigned long m_compteurClicMilieu; // utile pour mon prog. Final
    bool m_etatBoutonMilieu;  // permet de 
 
};
 
#endif
souris.cpp
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
 
 
 
Souris::Souris() :  milliSec( 1 )
{
  m_milliSec = milliSec;
 
}
 
Souris::~Souris()
{
 
}
 
void Souris::run()
{
  while(1)
  {
    QMouseEvent * sourisEvent; //version 1
 
    if (event->button() == Qt::NoButton){
 
    }
    else if (event->button() == Qt::MidButton){
 
    }
 
    else {
      // "autre!!!\n"
    }
 
    QEvent * generalEvent; //version 1
 
    if (generalEvent->type() == Qt::NoButton){
 
    }
    else if (generalEvent->type() == Qt::MidButton){
 
    }
 
    else {
      // "autre!!!\n"
    }
  }
  this::msleep ( m_milliSec )
}
 
void Souris::setSleep(unsigned long milliSec)
{
  m_milliSec = milliSec;
}
 
void Souris::changerSleepSouris(unsigned long milliSec)
{
  m_milliSec = milliSec;
}
j'ai pensé a deux versions dans le "run()" la seconde me semble plus proche du signal et semble pouvoir capter le bouton meme a l'exterieur de la fenetre Qt ce qui est aussi important.

je pense que c'est assez brouillon pour un vrai codeur mais si une ame charitable pouvait m'aider?