Salut, question relativement simple, est-il possible de déplacer à l'aide de la souris un cercle que j'ai dessiner à l'aide de QPainter par exemple?
Salut, question relativement simple, est-il possible de déplacer à l'aide de la souris un cercle que j'ai dessiner à l'aide de QPainter par exemple?
Bonjour
Avec QPainter, non.
Par contre, tu peux utiliser QGraphics : http://qt.developpez.com/doc/latest/graphicsview.html
Regarde les exemples fournis : http://qt.developpez.com/doc/latest/...phicsview.html (et en particulier http://qt.developpez.com/doc/latest/...gramscene.html et http://qt.developpez.com/doc/latest/...droprobot.html) et la démo : http://qt.developpez.com/doc/latest/demos-boxes.html
Merci, j'ai trouvé dans un exemple dans les docs qu'il est possible de dessiner sur un widget et ensuite de le rendre 'draggeable'.
Je n'avais pas envie de re-créer une discussion alors je vais prendre celle-ci pour continuer avec une autre question:
Alors j'ai étudier l'exemple de la plus-part des programme de drag & drop fournis par Qt et j'ai de la difficulté à comprendre la ligne suivante qui est dans la méthode redéfinit the mousePressEvent()
Alors, si je comprend bien, on va chercher la position x,y de la souris au moment de l'enclenchement de l'événement(avec pos) et ensuite on le passe à childAt qui va retourner 0 si il n'y a pas d'élément sinon, le widget visible à la position.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void DragWidget::mousePressEvent(QMouseEvent *event) { QLabel *child = static_cast<QLabel*>(childAt(event->pos()));
Ce qui me mêle c'est le static_cast:
Que ce passe t'il si je clique dans un espace vide et childAt retourne zéro? Que fera le static_cast dans ce cas et que contiendra child? La valeur null?
Le static_cast cast en QLabel, que ce passe t'il si l'événement est source d'un autre widget comme un bouton, le cast sera t'il possible ou le programme va planter?
Finalement, pourquoi utiliser un static_cast?
Merci encore.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager