Déplacer un rectangle (QGraphicsScen Qt)
kaka1989
Messages postés
57
Date d'inscription
Statut
Membre
Dernière intervention
-
kaka1989 Messages postés 57 Date d'inscription Statut Membre Dernière intervention -
kaka1989 Messages postés 57 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
SALUT je cherche a faire déplacer un rectangle sur une QGraphicsScene de Qt mais j'arrive pas le faire
SALUT je cherche a faire déplacer un rectangle sur une QGraphicsScene de Qt mais j'arrive pas le faire
A voir également:
- Déplacer un rectangle (QGraphicsScen Qt)
- Déplacer colonne excel - Guide
- Déplacer barre des taches windows 11 - Guide
- Smiley rectangle barré signification - Forum Réseaux sociaux
- Déplacer dossier onedrive - Guide
- Signification rectangle avec croix dedans ✓ - Forum Samsung
5 réponses
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.
mais comment récupérer les coordonne d'un clique de souris sur une QGraphicsScene pour redessiné un rectangle avec les nouveaux coordonnée
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.
vous pouvez donner un exemple SVL?????????
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.
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 ???
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