QT liste des signaux (SIGNAL) possibles ? [Résolu]

RV2931 185 Messages postés samedi 21 mai 2005Date d'inscription 16 juillet 2016 Dernière intervention - 24 août 2008 à 21:20 - Dernière réponse : SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention
- 24 août 2008 à 23:27
Bonjour,

je me suis mis au C++/QT avec code::blocks, et ça me paraît prometteur, ça a plutôt intérêt, parce que j'ai un gros projet qui arrive et j'ai mis du temps à me décider, mais finalement QT me paraît vraiment pas mal...
Ma question est la gestion de base des évènements, j'ai compris qu'il faut connecter le sender avec le type de signal genre
QObject->connect(myPushButton, SIGNAL(clicked()),app,SLOT(quit()));

pour clicked ça fonctionne très bien, mais quand je veux utiliser mousemoveevent, il me dit :"no such signal QPushButton::mousemoveevent()

je voudrais faire la même chose avec l'évênement équivalent "OnMouseMove" qu'on peut trouver en C# ou autres langages plus évolués.
Comment dois-je faire ?? J'ai cherché une liste des évênements disponible pour les QPushButton, je n'ai pas trouvé, et dans Code::Blocks, l'évênement clicked() apparaît avec un petit icone vert, comme toutes les fonctions, alors, c'est impossible de distinguer ce qui est évênement ou simple fonction membre... :o(

Si quelqu'un peut m'aider ?
Il y a un bien une communauté francophone sur QT, je ne crois pas qu'il y ait bcp de developper QT ici non ?

merci

RV

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 24 août 2008 à 22:59
3
Merci
Ceci est géré par la classe QMouseEvent qui est passé en argument du callback mouseMoveEvent:
http://doc.trolltech.com/4.4/qmouseevent.html

Ici sont listé toutes les classes de qt 4.4 et les descriptifs nécessaire:
http://doc.trolltech.com/4.4/classes.html

C++ (@++)

Merci SAKingdom 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de SAKingdom
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 24 août 2008 à 22:45
0
Merci
http://doc.trolltech.com/4.4/qpushbutton.html#details


_________________________________________________________________________


VB.NET
is good ...
VB6
is better<
Commenter la réponse de cs_ghuysmans99
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 24 août 2008 à 22:49
0
Merci
mouseMoveEvent n'est pas un signal mais un callback qui est appelé à chaque événement sur le curseur:

#include

using namespace std;

#include <QApplication>
#include <QPushButton>
#include <QMouseEvent>

class MyButton : public QPushButton
{
protected:
    void mouseMoveEvent(QMouseEvent *m);
public:    MyButton(const char *name 0,  QWidget *parent 0);
};

MyButton::MyButton(const char *name, QWidget *parent)
: QPushButton(name, parent)
{
    setMouseTracking(true);
}

void MyButton::mouseMoveEvent(QMouseEvent *m)
{
    cout << m->x() << " " << m->y() << endl;
}

int main (int argc, char *argv[]) {
    QApplication app (argc, argv);
   
    MyButton but("Ceci est un bouton test");
   
    but.show();
   
    return app.exec();
}

Ce code affichera à la console les coordonnées x et y du curseur à chaque fois qu'il se déplacera sur le bouton.

C++ (@++)
Commenter la réponse de SAKingdom
RV2931 185 Messages postés samedi 21 mai 2005Date d'inscription 16 juillet 2016 Dernière intervention - 24 août 2008 à 22:55
0
Merci
Ok, donc si j'ai bien compris, dès qu'on veut gérer des évênements utilisateurs un peu plus évolués que clicked(), pressed() et released(), on est obligé de dériver le composant de base et de gérer les callbacks et de créer ses propres signaux, ne serait-ce par exemple que pour différencier un left/middle/right/Buttonclicked() ?

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
Commenter la réponse de RV2931
RV2931 185 Messages postés samedi 21 mai 2005Date d'inscription 16 juillet 2016 Dernière intervention - 24 août 2008 à 23:15
0
Merci
Pour les futurs qui se poseront se genre des questions, (et j'avoue pour me faire gagner une petite demie heure de recherche), pourrais-tu compléter ton exemple de la class MyButton afin qu'ils émette un signal genre "mousemove", et qu'il soit réutilisé dans le main avec la fonction connect(&but,SIGNAL(mousemove()),app,SLOT(qque chose)); ?
Si cela est possible biensur et fonctionne biensur.

merci

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
Commenter la réponse de RV2931
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 24 août 2008 à 23:27
0
Merci
C'est le seul moyen que je connaisse d'intercepter un événement du curseur sur un widget.

C++ (@++)
Commenter la réponse de SAKingdom

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.