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 :

Récupérer un clic et la couleur d'un pixel [Graphics View]


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Récupérer un clic et la couleur d'un pixel
    Bonjour à tous et bonne année !

    Depuis quelques jours déjà, je bloque en C++.

    Je dois créer une application permettant de charger une image et de récupérer la couleur d'un pixel lors d'un clic. Je travaille sous QtCreator.

    J'ai donc mis en place un objet QGraphicsView et j'arrive bien à charger mon image. Par contre, impossible de récupérer un clic ! Il semble que l'événement clic n'existe pas pour ce genre de chose.
    J'essaie donc de récupérer d'abord les coordonnées x et y du pixel cliqué, puis les composantes R,V et B à telles coordonnées avec QMouseEvent. J'ai trouvé les méthodes x() et y() de QMouseEvent, mais cela ne fonctionne pas. Je pense que je ne rentre pas le bon paramètre en entrée de ces fonctions. J'ai testé x(graphicsView_Image) (nom donné à l'image dans l'interface).

    Auriez-vous une idée ?
    Merci d'avance.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Vous devriez pouvoir hériter de QGraphicsView pour faire votre propre élément, puis de surcharger une fonction du style mousePressEvent().
    Ensuite, comment avez-vous charger l'image ? Avec un QImage ? Dans un tel cas, on devrait pouvoir s'y retrouver avec la fonction color().
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Merci pour votre réponse,

    Pour charger l'image, j'ai utilisé QPixmap.
    Que voulez-vous dire par "faire son propre élément" ? Créer une nouvelle classe qui perçoive le clic et alors récupérer la couleur ?
    Mais j'arrive bien à repérer l'événement clic : quand je clique là où se trouve l'image, j'affiche un message de vérification dans la console. C'est juste que je n'arrive pas à récupérer la couleur et les coordonnées de ce clic.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Si vous réussissez à récupérer le clic et à afficher un message, vous avez bien des coordonnées de la souris. Comment récupérez vous le clic ?
    Peut être il faut utiliser un mapToItem() pour obtenir les coordonnées de l'image.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    J'ai réussi à récupérer coordonnées et couleur d'un pixel en créant une classe héritant de QGraphicsScene.
    J'ai ensuite converti mon image d'objet QGraphicsPixmapItem en objet QImage. Ainsi, les méthodes x() et y() fonctionnent, et j'obtiens la couleur avec la méthode pixel(x,y) de QColor.

    Encore merci pour votre aide et bonne journée !

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

Discussions similaires

  1. Récupérer la couleur d'un pixel
    Par Jere15 dans le forum C++
    Réponses: 4
    Dernier message: 20/06/2007, 16h35
  2. [VBA] - Récupérer le code RGB des couleurs systèmes
    Par Invité dans le forum VBA Access
    Réponses: 8
    Dernier message: 12/06/2007, 10h25
  3. Réponses: 4
    Dernier message: 02/04/2007, 13h25
  4. Récupérer la couleur d'un pixel
    Par MadininaSTY dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 05/06/2006, 18h55
  5. [VB.NET] Récupérer les caractéristiques d'une couleur
    Par leSeb dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/08/2004, 15h03

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