bonjour je debut sous qt qui a l'aire surper bien
mais j'ai un petit probleme consernant les slots
donc je vous mais ma class fenetre et je vous explique
le h
#ifndef FCORE_H
#define FCORE_H
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLCDNumber>
#include <QSlider>
#include <QObject>
#include <QProgressBar>
#include <usb.h>
#include <errno.h>
#include "/usr/include/usb.h"
#include "usbccpp.h"
using namespace std;
class Fcore : public QWidget
{
Q_OBJECT
private:
QPushButton *bouton;
QLCDNumber *lcd;
QLCDNumber *lcd2;
QLCDNumber *lcd3;
QLCDNumber *lcd4;
QLCDNumber *lcd5;
usbccpp *usb;
char *trame;
public slots:
void souris(void);
//void changerHauteur(int haut);
signals:
void into(int);
void into2(int);
void into3(int);
void into4(int);
void into5(int);
public:
Fcore();
void trameok(void);
//void souris(void);
~Fcore();
};
#endif // FCORE_H
le cpp
donc je commence#include "../include/Fcore.h"
#include <usb.h>
#include "/usr/include/usb.h"
#include <errno.h>
Fcore::Fcore() : QWidget()
{
this->setFixedSize(300, 150);
bouton = new QPushButton("ACTIVER", this);
lcd = new QLCDNumber(this);
lcd2 = new QLCDNumber(this);
lcd3 = new QLCDNumber(this);
lcd4 = new QLCDNumber(this);
lcd5 = new QLCDNumber(this);
bouton->setFont(QFont("Comic Sans MS", 14));
bouton->setCursor(Qt:ointingHandCursor);
bouton->setIcon(QIcon("bel.png"));
bouton->move(200, 50);
lcd->setSegmentStyle(QLCDNumber::Flat);
lcd->move(50, 0);
lcd2->setSegmentStyle(QLCDNumber::Flat);
lcd2->move(50, 30);
lcd3->setSegmentStyle(QLCDNumber::Flat);
lcd3->move(50, 60);
lcd4->setSegmentStyle(QLCDNumber::Flat);
lcd4->move(50, 90);
lcd5->setSegmentStyle(QLCDNumber::Flat);
lcd5->move(50, 120);
QObject::connect(bouton, SIGNAL(clicked()), this, SLOT(souris(void)));
QObject::connect(this, SIGNAL(into(int)), lcd, SLOT(display(int)));
QObject::connect(this, SIGNAL(into2(int)), lcd2, SLOT(display(int)));
QObject::connect(this, SIGNAL(into3(int)), lcd3, SLOT(display(int)));
QObject::connect(this, SIGNAL(into4(int)), lcd4, SLOT(display(int)));
QObject::connect(this, SIGNAL(into5(int)), lcd5, SLOT(display(int)));
}
void Fcore::souris(void)
{
//usbccpp usb;
this->usb = new usbccpp;
this->usb->scan();
this->usb->ouvre();
this->usb->detache();
for(int u=0;u<50;u++)
{
this->trame = this->usb->aff();
emit into((int)trame[0]);
emit into2((int)this->trame[1]);
emit into3((int)this->trame[2]);
emit into4((int)this->trame[3]);
}
emit into5(999);
}
void trameok(void)
{
}
Fcore::~Fcore()
{
}
donc pour commencer j'ai creer un class usb qui me recupere
le trame de ma souris ( ce qui na pas trop d'inportance dans mon probleme mais ces pour vous metre dans le contexte )
donc le but pour moi et de recupere la trame qui est sur 4 octect est de l'aficher dans les lcd lcd2 lcd3 lcd4 .
donc si vous regarder la fonction this->usb->aff() elle attend un mouvement de la souris et la revoit dans le tableau trame
donc jusque la tout est ok sans ma boucle for tout est ok mais des que je boucle sur ma methode 50 fois l'achichage afiche que le 50eme mouvement
donc ma qustion et comment puis je boucler sur emit et quil se syncronise a chaque tour ou petetre que je mis prend mal et si ces le cas comment mis prendre
je vous remerci d'avance pour vos reponsse
Partager