Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1360 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Probleme avec qt/kdevelop

 


kj




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec qt/kdevelop

n°1025291
superlala
Posté le 25-03-2005 à 21:03:29  profilanswer
 

Alors j'esplique mon probleme,
 
Je suis en 2nd annee de bts informatique et je dois effectuer un projet de fin d'annee. J'ai choisi de faire la gestion d'un parking. Plus precisement, je m'occupe de la programmation de la borne de paiement.
 
Voila mon probleme, je dois faire une IHM pour simuler le monnayeur, pour cela je dois utiliser qt designer. J'ai un main.cpp ki lance tous les composants (le lecteur de carte, le controle d capteur etc...) puis il passe la main a mon application ki elle attend kil y ai d evennement (ex : insertion de piece, insertion d'une carte, annulation du paiement etc...). Cette application lance mon ihm ki simule le monnayeur. Mais je ne c pas comment faire pour que lorsque je clik sur une piece de mon ihm, il envoi un evenement ou un signal a mon application (avec qt).
 
Est ce que qqu pourait m'aider ou me donner des exemple dans le meme genre?
Merci d'avance pour votre aide

mood
Publicité
Posté le 25-03-2005 à 21:03:29  profilanswer
 

n°1025307
push
/dev/random
Posté le 25-03-2005 à 21:24:49  profilanswer
 

pas mal ton sondage mais t'as oublié obiwan quand même.

n°1025321
IrmatDen
Posté le 25-03-2005 à 21:44:29  profilanswer
 

Vu que tu bosses sur Qt, tu n'as qu'à utiliser le mécanisme SIGNAL/SLOT, genre

Code :
  1. connect(piece ,SIGNAL(clicked()), this, SLOT(pieceEntree()));


en supposant que piece est ton bouton et que pieceEntree est un slot déclaré dans ton application effectuant ce que tu veux lors de l'insertion d'une pièce.

n°1025333
SomeBugsIn​Me
life suxx
Posté le 25-03-2005 à 22:02:45  profilanswer
 

ouaip les signals/slots sont bien pratiques et simples à utiliser à mon avis. La doc officielle est pas mal foutue. Commence éventuellement là : http://doc.trolltech.com/3.3/signalsandslots.html

n°1026092
superlala
Posté le 26-03-2005 à 13:09:01  profilanswer
 

Merci bien pour vos reponses tres rapide. Je viens de lire une doc sur les signals et les slots, ca a l'air bien interessant tt ca.  
Mais j'ai une derniere question. Deja je vais expliker mon programme, donc j'ai une application (a) qui cree une boite de dialogue (piece) et dans cette boite de dialogue il y a des pushbutton ki simule les pieces (p1,p2,....). Si j'ai bien compris, lorsque j'appuie sur un boutton, cela cree un signal, mais est ce que ce signal je peux le connecter a un slot de mon application (piece_inseree) pour ke l'application effectuer differente chose?
 
Merci d'avance pour votre reponse.

n°1026164
IrmatDen
Posté le 26-03-2005 à 17:12:49  profilanswer
 

Citation :

est ce que ce signal je peux le connecter a un slot de mon application (piece_inseree) pour ke l'application effectuer differente chose


C'est justement pour cette raison que ce mécanisme a été créé. D'ailleurs une fois que tu y a touché tu ne peux plus t'en passer !
 
Je suppose que tu veux effectuer le même type d'action pour chaque pièce insérée et qu'il n'y a que la valeur de cette pièce qui change.
Si tu utilises le mécanisme SIGNAL/SLOT de base, tu devras connecter le signal clicked() de p1 à un slot de ton appli du type p1clicked(). L'inconvénient de cette méthode est que tu va devoir déclarer des slots pour chaque bouton.
Pour te simplifier la tache, je te conseille de lire http://doc.trolltech.com/qq/qq10-signalmapper.html. Quelques approches sont exposées qui simplifieront ton code.

n°1028978
superlala
Posté le 29-03-2005 à 20:48:53  profilanswer
 

J'avais une derniere questions, est t'il possible de mettre un argument avec le slot, par exemple :
void insertion_piece(int)
ou
void insertion_piece(double)
 
merci d'avance pr votre reponse

n°1029047
IrmatDen
Posté le 29-03-2005 à 21:35:51  profilanswer
 

Les arguments que tu peux utiliser dans un slot doivent être le(s) même(s) que celui/ceux du signal émis. A quoi correspondrait l'utilisation de ton argument ?

n°1030417
superlala
Posté le 30-03-2005 à 21:52:57  profilanswer
 

L'argument correspont a la valeur de la piece que je veux inserrer. Donc de preference je voudrais un double.
Merci d'avance pour votre reponse

n°1030584
IrmatDen
Posté le 30-03-2005 à 23:49:43  profilanswer
 

Dans ce cas tu peux créer ton propre signal. Exemple :

Code :
  1. // parcmetre.h
  2. class Parcmetre
  3. {
  4. ...
  5. signals:
  6.    void pieceInseree(double valeur);
  7. protected slots:
  8.    // insertion d'une piece de 0.10E
  9.    void p1clicked();
  10.    // insertion d'une piece de 0.20E
  11.    void p2clicked();
  12. };
  13. //parcmetre.cpp
  14. Parcmetre::Parcmetre()
  15. {
  16.    ...
  17.    QPushButton *p1 = new QPushButton(this);
  18.    connect(p1, SIGNAL(clicked()), this, SLOT(p1clicked()));
  19.    QPushButton *p2 = new QPushButton(this);
  20.    connect(p2, SIGNAL(clicked()), this, SLOT(p2clicked()));
  21. }
  22. void Parcmetre::p1clicked()
  23. {
  24.    emit pieceInseree(0.10);
  25. }
  26. void Parcmetre::p2clicked()
  27. {
  28.    emit pieceInseree(0.20);
  29. }


 
ou mieux (plus souple) : en utilisant le QSignalMapper décris dans le lien plus haut tu utilises des QString au lieu de double et tu convertis la chaine reçue en double...
A toi de voir l'approche que tu préfères...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Probleme avec qt/kdevelop

 

Sujets relatifs
Problème d'affichageMysql : après DELETE la base garde la même taille et problème d'Id
[MFC] Problème avec OnPaint et un TimerProblème avec getURL();
[C#] Problème de surcharge [RESOLU]problème de css
Problème entre javascript et formulaire HTMLproblème de syntaxe
Probleme de sessionkdevelop : problème de breakpoint
Plus de sujets relatifs à : Probleme avec qt/kdevelop


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR