C++/QT (slot avec parametres)

houcem -  
tifo85 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis entrain de programmer le tour de hanoi avec C++ / QT et j'ai un probleme au niveau des slots
j'ai ecris :
********
QObject::connect(m_solution, SIGNAL(clicked()), this, SLOT(deplacer(int 1,int 3)));
void MaFenetre::deplacer(int x,int y)
{
deplacerAB();
}
***********
avec deplacerAB est un slot . deplacer (int x, int y) ne contient pas seulement le slot deplacerAB() mais je veux juste que ça marche.
donc mon prbleme est le slot avec des parametres:comment les ecrires
j'espere que vous m'aidez
merci
A voir également:

11 réponses

houcem
 
merci pour votre reponse snipeur.
j'ai fais comme tu m'as dis mais ça marche pas.
en plus où je vais entrer mes parametres ?
deplacer(1,2) .? où entrer ces 2 entiers?
merci
-1
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Je sais pas ?
emit clicked(1,2) ? ou alors grace aux paramètre par défaut :
QObject::connect(m_solution, SIGNAL(clicked()), this, SLOT(deplacer()));
void MaFenetre::deplacer(int x=1,int y=2)
{
deplacerAB();
}

que veux dire "ça marche pas" ? problème de compilation ou à l'exécution ?
à l'exécution, assure toi que le signal est bien émit.
-2
houcem
 
fais j'ai comme ça :
***
MaFenetre.cpp
------------
QObject::connect(m_solution, SIGNAL(clicked(int,int)), this, SLOT(deplacer(int,int)));
void MaFenetre::deplacer(int x=1,int y=2)
{
deplacerAB();
}
****
MaFenetre.h
---------
void MaFenetre::deplacer(int x,int y);
*****

le programme se compile et s'execute correctement mais en appuyant sur le bouton solution : rien ne se passe!!!!
j'ai essayer ce meme code mais son parametre pour le slot deplacer() : il marche correctement
mais bien sur j'ai besoin de ces parametres car mon programme est tres plus long que ça.
merci de m'aider
-2
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
fait un affichage de x et y
void MaFenetre::deplacer(int x=1,int y=2)
{printf("%d %d\n",x,y);
deplacerAB();
}
mais comme tu utilises QObject::connect(m_solution, SIGNAL(clicked(int,int)), this, SLOT(deplacer(int,int))); c'est à dire avec des paramètre, il est normal qu'il ne conserve pas ceux par défaut. je t'avais dit d'essayer
QObject::connect(m_solution, SIGNAL(clicked()), this, SLOT(deplacer())); là il devrai prendre les arguments par défaut.
sinon, il faut peux être rajouter des signaux à m_solution de manière à faire ce que tu veux, ou alors un autre SLOT à MaFenetre :
QObject::connect(m_solution, SIGNAL(clicked()), this, SLOT(deplacer_1()));
void MaFenetre::deplacer_1(void)
{
deplacer(1,2);
}
-2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
houcem
 
c'est pas le probleme au niveau des entiers 1 ou 3
je l'ai met quelconque
en plus je peux pas faire ni printf ni cout car je suis pas sous console
-2
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Explique mieux ce que tu veux faire alors.
utilise printf, et lance ton programme depuis la console. Si tu es sous windows vire l'option -mwindows lors de l'édition des liens.
-2
houcem
 
salut
mon probleme est que mon prog ne fonctionne pas en utilisant un slot avec parametre
mon exemple est:
QObject::connect(m_solution, SIGNAL(clicked(int,int)), this, SLOT(deplacer(int,int)));
void MaFenetre::deplacer(int x=1,int y=2)
{
deplacerAB();
}

mais ça pas marcher
.
-2
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
ça sert à rien de te répété, si je te dit que je ne comprends pas et plus d'info, c'est pour que tu m'en dise plus !
vérifie que le signal clicked(int,int) existe bien dans on m_solution. Car il me semble que comme SIGNAL est une macro, il peut accepter n'importe quoi.
que dit le printf ?
-2
tifo85 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
si tu veut il ya une travail
-2
Elwish Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   3
 
Salut,


J'ai crée un nouveau forum sur le C++ et toutes les librairies graphiques. (qt entre autres)

Il y a peu de membres, mais surement il y en a qui te répondront.

J'espère t'y voir.

https://buildcpp.xooit.fr/index.php
-3
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
salut, il faut que ton signal émette des paramètre aussi. Sinon, à quoi veux tu qu'ils soient fixé ?? Donc :
QObject::connect(m_solution, SIGNAL(clicked(int,int)), this, SLOT(deplacer(int,int)));
surtout qu'il me semble bien que ce signal existe.
-3