Probléme avec un Slider : comment envoyé la valeur généré par le slider a une in

controlleur Messages postés 65 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 16 avril 2013 - 5 août 2011 à 15:31
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 8 août 2011 à 10:08
Bonjour

dans mon projet j'ai réalisé une petite interface que je l'ai intégré dans un mainwindow

class mainwindow : public QMainWindow
{
Q_OBJECT

....
....
}

L'interface opengl je l'affiche à l'aide de la fonction paintGL() qui est déclaré dans ma class GLWidget : Mon problème c'est que a base de la valeur de se Slider je doit changer l'angle d'inclinaison d'un rectangle
j'ai utilisé la fonction QObject::connect(.......) mais ça marche pas :s :s


connect(xSlider, SIGNAL(valueChanged(int)),glWidget , SLOT(Incre_Angle(int)));

avec : la fonction Incre_Angle(int) je l'ai déclaré comme public slot : comme vous pouvez le voir dans la définition de la classe en bas .

si quelqu'un peut m'aider je serai très content Merci d'avance .


class GLWidget : public QGLWidget
{
Q_OBJECT
public:

GLWidget(QWidget *parent = 0);
~GLWidget();

int xRotation() const { return xRot; }
int yRotation() const { return yRot; }
int zRotation() const { return zRot; }

public slots:
void setXRotation(int deg){xRot=deg; updateGL(); }
void setYRotation(int deg){yRot=deg; updateGL(); }
void setZRotation(int deg){zRot=deg; updateGL(); }
void Incre_Angle(double);

signals:
void xRotationChanged(double angle);
void yRotationChanged(double angle);
void zRotationChanged(double angle);

protected:
void initializeGL();
void paintGL();
void resizeGL(int width, int height);
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);

private:
void normalizeAngle(int *angle);
GLuint texture[4];
double angle_camera;
int timerId;
GLfloat xRot;
GLfloat yRot;
GLfloat zRot;
int gear1Rot;
double angle;

QPoint lastPos;
};

3 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
5 août 2011 à 15:58
Hello,
j'ai utilisé la fonction QObject::connect(.......) mais ça marche pas :s :s

C'est un peu court, jeune homme.... Qu'entends-tu par "ça ne marche pas"? C'est normal que Incre_Angle() ce soit la seule fonction à ne pas avoir d'implémentation? A moins qu'elle ne soit dans le .cpp. Rentres-tu bien dans ta fonction?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
controlleur Messages postés 65 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 16 avril 2013
7 août 2011 à 15:01
Bonjour buno

Mais si la fonction Incre_Angle() je l'ai bien défini dans mon fichier ".h" comme etant un public Slot , et le corps de cette fonction et bien définie dans mon fichier".cpp" je vois pas vraiment mon Erreur ?
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
8 août 2011 à 10:08
Hello,
Désolé, je n'avais pas eu de notification de réponses...
connect(xSlider, SIGNAL(valueChanged(int)),glWidget , SLOT(Incre_Angle(int)));

void Incre_Angle(double);

--> Elle est peut-être là l'erreur: double ou bien int?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous