IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

paintEvent comment ça fonctionne ?


Sujet :

Qt

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 88
    Points : 64
    Points
    64
    Par défaut paintEvent comment ça fonctionne ?
    Bonjour à tous,
    alors le problème d'aujourd'hui tourne autour des evènements

    En effet je n'ai pas très bien compris la liaison entre QMouseEvent et paintEvent.
    Alors dans un premier temps,je declare une classe qui hérite de QWidget avec les fonctions suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //fichier .h
    void paintEvent(QPaintEvent *qevent);
    void mouseMoveEvent(QMouseEvent *qevent);
    Et donc lorsque j'appuie sur le bouton et que je le maintien il me fait une suite de point .Jusqu'ici tout vas bien.
    Mais lorsque je rajoute un QMouseReleaseEvent , je ne sais plus comment faire appelle à paintEvent .
    Et comme je doute sur la clarté de mon sujet voilà un bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //Fichier .cpp
    void imageTemps::paintEvent(QPaintEvent *qevent)
        {
                   //Exemple tiré d'un tuto
    		QPainter *p = new QPainter(this);
    		p->drawPoints(m_points);
        }
    void imageTemps::mouseMoveEvent(QMouseEvent *qevent)
        {
            //Déja j'ai du mal à voir comment l'evenement de la souris 
           //est lié à celui de paint !!!!
            m_points << qevent->pos();
            update();
     
     
    void imageTemps::mouseReleaseEvent(QMouseEvent *qevent) 
    {
    	lPoint = qevent->pos();
    	fPoint = m_points.first();
     
            //Ce qui suit est une tentative qui mene à rien
            QPainter *p2 = new QPainter(this);
    	p2->drawLine(lPoint,fPoint);
    	update();
    }
        }
    En résumé avec QMouseMoveEvent , je veux qu'il me dessine la suite des points , et Lorsque je relache le boutton,avec QMouseReleaseEvent, je veux qu'il lie le
    1er et le dernier Boutton.(Pour avoir un truc fermé).
    Merci pour toutes interventions

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 88
    Points : 64
    Points
    64
    Par défaut
    C bon j'ai trouvé
    1 solutions : passer par un boolean (intermédiaire ) .
    Qui est affecté à true lorque je lache le boutton .
    Mais là je me retrouve devant un autre problème .
    Il efface le contour que je venait de faire auparavant !!!!
    Quelqu'un aurait une idée pour conservé l'ancien dessin ?
    Merci.

Discussions similaires

  1. Compilateur asm, comment ça fonctionne ?
    Par AsmCode dans le forum Assembleur
    Réponses: 21
    Dernier message: 30/07/2005, 00h59
  2. Comment faire fonctionner une scroll bar ???
    Par toto4650 dans le forum MFC
    Réponses: 10
    Dernier message: 18/07/2005, 17h47
  3. [JToolTip] comment ca fonctionne ?
    Par Terminator dans le forum Composants
    Réponses: 2
    Dernier message: 29/05/2005, 16h18
  4. [Chat] Comment faire fonctionner Flash 7 sous Debian ?
    Par piff62 dans le forum Evolutions du club
    Réponses: 22
    Dernier message: 07/03/2005, 16h27
  5. comment faire fonctionner l'exe sur une autre machine
    Par brian79 dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/05/2004, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo