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
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 #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
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.
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; }
je pense que c'est assez brouillon pour un vrai codeur mais si une ame charitable pouvait m'aider?![]()
Partager