Partage
  • Partager sur Facebook
  • Partager sur Twitter

[QT4] Gérer la souris

    17 juin 2007 à 19:22:48

    Bonjour!

    Voici mon problème: (si ça en est un ^^ )

    J'ai un Widget et quand je clique dessus je voudrai que la position en x en en y de la souris soit stocké dans des variables! (pour pouvoir afficher une image a cette endois)
    Mais comme réussir à stocker ces variable!

    Merci d'Avance!

    PS: J'ai vu la doc de QT (qui est très bien faite faut dire) mais sur ce point là je bloque! :(



    • Partager sur Facebook
    • Partager sur Twitter
      17 juin 2007 à 19:33:22

      tu crées une classe dérivant de QWidget, tu redéfinis mousePressEvent, et tu as les positions de la souris dans "event->x()" et "event->y()" où "event" est le paramètre de "mousePressEvent". ;)
      • Partager sur Facebook
      • Partager sur Twitter
        17 juin 2007 à 20:05:55

        ok jevais essayer!

        edit: Non j'ai vraiment du mal!
        Est t'il possible d'avoir un exemple?? Merci mille fois!
        • Partager sur Facebook
        • Partager sur Twitter
          21 juin 2007 à 13:36:06

          Ton widget il dérive de QWidget non ? (même indirectement)
          en faisant exactement ce que t'a dis minirop :
          void mousePressEvent(QMouseEvent *event)
          {
             int posX = event->x();
             int posY = event->y();
          }


          Qu'est-ce qui cloche ?

          Si c'est ce que tu as fait, montre nous ton code, le problème vient d'ailleurs ;)
          • Partager sur Facebook
          • Partager sur Twitter
            21 juin 2007 à 14:41:21

            On va pas tout faire à ta place, quand même...

            Moi-même, qui n'y connais pas grand-chose à Qt (je m'y suis mis un peu il y a pas mal de temps), je pense que cela devrait donner quelque chose du genre :
            #include <qwidget> //Il me semble

            class MyWidget : public QWidget
            {
                public:
                    //QWidget parent = 0 et Qt::WindowFlags = 0
                    MyWidget()
                    {
                        m_x = 0;
                        m_y = 0;
                    }

                protected:
                    virtual void mousePressEvent(QMouseEvent *event)
                    {
                        m_x = event->x();
                        m_y = event->y();
                    }

                    int m_x, m_y;
            };

            Freecircus : Tu as oublié le préfixe de scope (résolution de portée) MyWidget:: (ici).
            • Partager sur Facebook
            • Partager sur Twitter
              21 juin 2007 à 14:53:07

              mousePressEvent est "protected" ;)
              • Partager sur Facebook
              • Partager sur Twitter
                21 juin 2007 à 14:58:43

                Je m'en doutais ;)

                J'édite :)

                Edit: Evidemment, l'appeler de l'extérieur n'a pas lieu d'être... on va mettre ça sur le coup des révisions ^^
                • Partager sur Facebook
                • Partager sur Twitter

                [QT4] Gérer la souris

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown