Déplacer un rectangle (QGraphicsScen Qt)
Fermé
kaka1989
Messages postés
57
Date d'inscription
dimanche 26 avril 2009
Statut
Membre
Dernière intervention
1 juillet 2012
-
15 janv. 2011 à 19:00
kaka1989 Messages postés 57 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 1 juillet 2012 - 16 janv. 2011 à 19:50
kaka1989 Messages postés 57 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 1 juillet 2012 - 16 janv. 2011 à 19:50
A voir également:
- Déplacer un rectangle (QGraphicsScen Qt)
- Déplacer une colonne excel - Guide
- Déplacer barre des taches windows 11 - Guide
- Signification rectangle avec croix dedans ✓ - Forum Samsung
- Déplacer dossier onedrive - Guide
- Déplacer une fenetre hors écran - Guide
5 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
16 janv. 2011 à 02:01
16 janv. 2011 à 02:01
Je suppose que ton rectangle est un 'QGraphicsRectItem' qui dérive de 'QGraphicsItem' qui contient une méthode 'setPos' qui permet de positionner ton objet par rapport à la scène dans laquelle il aura été intégré (voir 'QGraphicsScene::addItem').
Voir la doc dans la partie 'The Graphics View Coordinate System'.
Bonne continuation.
Voir la doc dans la partie 'The Graphics View Coordinate System'.
Bonne continuation.
kaka1989
Messages postés
57
Date d'inscription
dimanche 26 avril 2009
Statut
Membre
Dernière intervention
1 juillet 2012
5
16 janv. 2011 à 12:23
16 janv. 2011 à 12:23
mais comment récupérer les coordonne d'un clique de souris sur une QGraphicsScene pour redessiné un rectangle avec les nouveaux coordonnée
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
16 janv. 2011 à 14:46
16 janv. 2011 à 14:46
Il est nécessaire de créer une classe dérivée de 'QGraphicsScene' afin de pouvoir redéfinir la méthode virtuelle 'void QGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent * mouseEvent)' qui sera donc appelée lors d'un clic de souris et te permettra alors de pouvoir connaître, entre autres, quel bouton a cliqué et à quelle position.
Bonne continuation.
Bonne continuation.
kaka1989
Messages postés
57
Date d'inscription
dimanche 26 avril 2009
Statut
Membre
Dernière intervention
1 juillet 2012
5
16 janv. 2011 à 14:57
16 janv. 2011 à 14:57
vous pouvez donner un exemple SVL?????????
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
16 janv. 2011 à 15:31
16 janv. 2011 à 15:31
Bon c'est un peu compliqué et serait bien long à détailler. En fait il faur rédéfinir 3 fonctions virtuelles: mousePressEvent, mouseMoveEvent, mouseReleaseEvent qui vont te permettre de connaître quel objet de la scène est concerné par le clic dont la position est mémorisée, puis de combien il faut déplacer l'objet relativement au point mémorisé, puis d'arrêter de déplacer l'objet.
class Scene : public QGraphicsScene { Q_OBJECT ... protected: virtual void mousePressEvent (QGraphicsSceneMouseEvent* event); virtual void mouseMoveEvent (QGraphicsSceneMouseEvent* event); virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent* event); ... }; void Scene::mousePressEvent (QGraphicsSceneMouseEvent* event) { if (event->button() == Qt::LeftButton) { QList<QGraphicsItem*> selectionItems = items (event->scenePos()); // Tous les 'items' de la scène au point du clic sont retournés if (!selectionItems.isEmpty()) { // Alors il faut conserver la trace du premier élément qui est celui // du dessus, afin de pouvoir l'utiliser lors du 'move' ... event->accept(); } } }Bonne continuation.
kaka1989
Messages postés
57
Date d'inscription
dimanche 26 avril 2009
Statut
Membre
Dernière intervention
1 juillet 2012
5
Modifié par kaka1989 le 16/01/2011 à 17:05
Modifié par kaka1989 le 16/01/2011 à 17:05
est ce que je peu avoir plus de détail SVP????????? parce que j'ai une classe MainWindow qui contient une QGraphicsScene sur qui je dessine est je veut déplacer un rectangle ou une Ellipse ou un ligne après sans insertion sur la QGraphicsScene ???
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
16 janv. 2011 à 17:56
16 janv. 2011 à 17:56
Désolé mais c'est beaucoup trop long à expliquer. Par contre la documentation de Qt est bien faîte et tu pourras y trouver un exemple simple que tu vas facilement comprendre; il s'agit de 'Drag and Drop Robot Example'.
Pour y accéder, tu as deux solutions:
- soit par Qt4 Demo,
- soit par l'aide en tapant simplement 'Robot' dans l'index de recherche.
Bonne recherche.
Pour y accéder, tu as deux solutions:
- soit par Qt4 Demo,
- soit par l'aide en tapant simplement 'Robot' dans l'index de recherche.
Bonne recherche.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kaka1989
Messages postés
57
Date d'inscription
dimanche 26 avril 2009
Statut
Membre
Dernière intervention
1 juillet 2012
5
16 janv. 2011 à 19:50
16 janv. 2011 à 19:50
ok merci