C++/QT (slot avec parametres)
Fermé
houcem
-
26 août 2008 à 13:46
tifo85 Messages postés 4 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 23 août 2009 - 23 août 2009 à 02:06
tifo85 Messages postés 4 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 23 août 2009 - 23 août 2009 à 02:06
A voir également:
- C++/QT (slot avec parametres)
- Ouvrir paramètres - Guide
- Le bon coin mon compte parametres - Guide
- Qt sdk - Télécharger - Langages
- Tf slot ✓ - Forum Mobile
- Les paramètres d’autorisation propres à l’application n’accordent pas l’autorisation local activation pour l’application serveur com avec le clsid ✓ - Forum Windows 10
11 réponses
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
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
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
26 août 2008 à 14:25
26 août 2008 à 14:25
Je sais pas ?
emit clicked(1,2) ? ou alors grace aux paramètre par défaut :
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.
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.
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
***
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
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
26 août 2008 à 14:54
26 août 2008 à 14:54
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 :
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); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
je l'ai met quelconque
en plus je peux pas faire ni printf ni cout car je suis pas sous console
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
26 août 2008 à 16:00
26 août 2008 à 16:00
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.
utilise printf, et lance ton programme depuis la console. Si tu es sous windows vire l'option -mwindows lors de l'édition des liens.
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
.
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
.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
27 août 2008 à 08:45
27 août 2008 à 08:45
ç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 ?
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 ?
tifo85
Messages postés
4
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
23 août 2009
23 août 2009 à 02:06
23 août 2009 à 02:06
si tu veut il ya une travail
Elwish
Messages postés
40
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
26 août 2008
3
26 août 2008 à 14:04
26 août 2008 à 14:04
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
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
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
26 août 2008 à 14:17
26 août 2008 à 14:17
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.
QObject::connect(m_solution, SIGNAL(clicked(int,int)), this, SLOT(deplacer(int,int)));
surtout qu'il me semble bien que ce signal existe.