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

Discussion :

Glisser-déposer avec QLabel sur une image

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Points : 126
    Points
    126
    Par défaut Glisser-déposer avec QLabel sur une image
    Bonsoir,

    je voudrais faire un drag d'une image jpg venant d'internet sur un site le permettant et le dropper sur le Qlabel de mon appli.

    j'ai testé le copier coller cela fonctionne mais je ne sais pas trop ou je dérape dans le drag and drop.

    Voici ce que je fais :

    myLabel.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #ifndef MYLABEL_H
    #define MYLABEL_H
     
    #include <QLabel>
     
    class MyLabel : public QLabel
    {
        Q_OBJECT
     
    public:
        explicit MyLabel(QWidget *parent = 0);
        ~MyLabel();
     
    signals:
      void clicked();
      void clicked2();
      void drag();
      void drop();
     
    protected:
      void mousePressEvent(QMouseEvent *e);
      void dragEnterEvent(QDragEnterEvent *e);
      void dropEvent(QDropEvent *e);
    };
     
    #endif
    myLabel.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include "myLabel.h"
    #include <QLabel>
     
    MyLabel::MyLabel(QWidget *parent) :
        QLabel(parent)
     
        {
            setAcceptDrops(true);
        }
     
    MyLabel::~MyLabel()
    {
     
    }
     
    void MyLabel::mousePressEvent(QMouseEvent *e)
    {
        if (e->button() == Qt::LeftButton)
            {
                emit clicked();
            }
        if (e->button() == Qt::RightButton)
            {
                emit clicked2();
            }
    }
     
    void MyLabel::dragEnterEvent(QDragEnterEvent *e)
    {
        e->acceptProposedAction();
        emit drag();
    }
     
    void MyLabel::dropEvent(QDropEvent *e)
    {
        e->acceptProposedAction();
        emit drop();
    }
    dans mon QtGestXavMedias.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    QtGestXavMedias::QtGestXavMedias(QWidget *parent) :
        QMainWindow(parent),
     
        ui(new Ui::QtGestXavMedias)
    {....
        connect(ui->label, SIGNAL(clicked2()), this, SLOT(colleAffiche()));
        connect(ui->label, SIGNAL(drop()), this, SLOT(dropAffiche()));
    ...}
     
    void QtGestXavMedias::colleAffiche()
    {
        QMessageBox::StandardButton colle;
        colle = QMessageBox::warning(this, tr("Coller"), tr("Coller l'image ?"), QMessageBox::Yes | QMessageBox::No);
        if (colle == QMessageBox::Yes){
            originalPixmap = QApplication::clipboard()->pixmap();
            updateImage();
        }
    }
     
    void QtGestXavMedias::dropAffiche()
    {
        updateImage();
    }
    colleAffiche fonctionne mais pas dropAffiche.

    Qu'est-ce qui m’échappe ?

    Cordialement

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Drop
    C'est dans le "dragEnterEvent" que ca se passe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void TONLABEL::dragEnterEvent ( QDragEnterEvent * event )
    {
        if (event->mimeData()->hasImages())
        {
            event->acceptProposedAction();
        }
        else
        {
            event->ignore();
        }
    }
    et tu fait ta copie dans le "dropEvent"

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Points : 126
    Points
    126
    Par défaut
    Bonsoir,

    merci pour ta réponse.

    Que veux tu dire par et tu fait ta copie dans le "dropEvent" ?

    cordialement

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    je me suis sûrement mal exprimé;

    lorsque je drag une image (jpg) venant d'internet et que je la drop dans a l'endroit de mon Label : elle s'affiche.

    Mais quand j'enregistre : l'image n'est pas enregistrer.

    par contre, si j'utilise mon copier coller, là je peux l'enregistrer.

    Ma question est donc comment une fois l'image dans mon appli, comment faire pour pouvoir l'enregistrer dans mon Label? (voir mon programme ci-dessus)

    Cordialement

  5. #5
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Qu'est-ce que tu entends par "enregistrer" ? As-tu du code à nous montrer à ce propos ? Parce que là je ne comprends pas ta question. Y'a pas le code de updateImage en plus...

  6. #6
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Pour info tu as regardé la FAQ ici :
    http://qt.developpez.com/faq/?page=m...rdeposer-faire

  7. #7
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    je te remercie pour ce liens j'étais passé a coté.

    je teste dès que je peux et je reviens vers vous

    Cordialement

Discussions similaires

  1. [GD] Est il possible écrire avec PHP sur une image JPG ?
    Par arnaudperfect dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 28/11/2008, 17h36
  2. 2 actions différentes avec un clic sur une image
    Par beegees dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 26/02/2008, 19h37
  3. Réponses: 6
    Dernier message: 15/11/2007, 12h31
  4. [CSS] Problème avec cadre sur une image lien
    Par Strix dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 24/12/2006, 10h09
  5. Glisser/déposer un fichier sur une appli VB
    Par kafifi dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/11/2006, 23h06

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