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 :

un prb avec QGraphicsSceneHoverEvent


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Par défaut un prb avec QGraphicsSceneHoverEvent
    Bj,
    j'ai rencontré un prb qd j'utilise QGraphicsSceneHoverEvent.
    je veux changer la curseur qd le curseur approche le contour d'un QGraphicsItem objet.
    Voilà la code dan PolygonItem.cpp (qui hérite QGraphicsPolygonItem)
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    void PolygonItem::hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
    {
        ofstream myfile;
        myfile.open("hoverentre.txt");
        QPointF mousePos = QPointF(event->pos());
        QPointF ptl = this->boundingRect().topLeft();
        QPointF pbr = this->boundingRect().bottomRight();
        myfile << "ptl : (" << ptl.x() << "," << ptl.y() << ")" << endl;
        myfile << "pbr : (" << pbr.x() << "," << pbr.y() << ")" << endl;
        float width = this->boundingRect().width();
        float height = this->boundingRect().height();
        if( (mousePos.x() == ptl.x() && mousePos.y() == ptl.y())
            || (mousePos.x() == pbr.x() && mousePos.y() == pbr.y()) )
        {
            this->setCursor(Qt::SizeFDiagCursor);
            myfile << "mouse : (" << mousePos.x() << "," << mousePos.y() << ")" << endl;
        }
        else if((mousePos.x() == pbr.x() && mousePos.y() == ptl.y())
            || (mousePos.x() == ptl.x() && mousePos.y() == pbr.y()))
        {
            this->setCursor(Qt::SizeBDiagCursor);
            myfile << "mouse : (" << mousePos.x() << "," << mousePos.y() << ")" << endl;
        }
        else if((mousePos.x() == ptl.x() || mousePos.x() == pbr.x()))
        {
            this->setCursor(Qt::SizeHorCursor);
            myfile << "mouse : (" << mousePos.x() << "," << mousePos.y() << ")" << endl;
        }
        else if((mousePos.y() == ptl.y() || mousePos.y() == pbr.y()))
        {
            this->setCursor(Qt::SizeVerCursor);
            myfile << "mouse : (" << mousePos.x() << "," << mousePos.y() << ")" << endl;
        }
        myfile.close();
     
    }
    le résultat: qd on s'approche de gauche, de haut, ou de gauche en haut , ça peut marcher. mais dans les autres cas, ça peut pas marcher.
    Je comprends pas pk..

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Par défaut
    et j'ai testé aussi:
    qd ça marche, dans le fichier hoverentre.txt, il y a coord de mouse.
    mais qd ça marche pas, il y en a pas.
    CAD il n'a pas entré le "if" ou "else" mais je comprends pas pk.

  3. #3
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    Un problèmte de coordonnées je pense.

    Du genre, il faut que tu map tes coordonnées. Sûrement dût avec ton boundingRect. Essayes d'afficher tes valeurs tout le temps quelque part(un textEdit, dans la barre de status en bas...) et vérifies si elles correspondent.

    Dirige toi vers les mapFromScene ou mapToScene.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Un problèmte de coordonnées je pense.

    Du genre, il faut que tu map tes coordonnées. Sûrement dût avec ton boundingRect. Essayes d'afficher tes valeurs tout le temps quelque part(un textEdit, dans la barre de status en bas...) et vérifies si elles correspondent.

    Dirige toi vers les mapFromScene ou mapToScene.
    +1

    De plus, ton test me semble trop restrictif. Je ne sais pas exactement quand est déclenché l'event, mais ta souris a peut être bougé un peu depuis (d'ailleurs l'event() propose plusieurs positions). Ensuite, je ne sais pas quelles sont tes valeurs de coordonées, mais il est difficile d'avoir une exactitude ( == ) avec des floats. Travailler avec des intervalles me semblerait peut être plus approprié.

    Sinon pourquoi tu t'embetes à écrire dans un fichier, et pas dans la console ? En plus, tu ne fais aucun test sur l'ouverture/fermeture de ton fichier.

    G.

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Par défaut
    oui bonne idée ^^
    j'utilise file pour enregistrer les donées et je peux les comparer facilement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. prb avec une requete
    Par gregal dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/03/2005, 11h59
  2. prb avec un treeview et data
    Par mikyfpc dans le forum C++Builder
    Réponses: 7
    Dernier message: 14/12/2004, 22h59
  3. [Débutant] Jframe/JInternalFrame: prb avec JScrollPane
    Par flzox dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 12/12/2004, 00h08
  4. prb avec dbimage
    Par hrezzaz dans le forum Bases de données
    Réponses: 1
    Dernier message: 27/10/2004, 14h41
  5. [TOMCAT] prb avec le cache de certains users
    Par osmoze dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 07/06/2004, 15h21

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