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 chemin dans un QDirModel


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Par défaut Récupérer un chemin dans un QDirModel
    Bonjour a tous !

    Voila mon probleme...
    J'ai un QTreeView avec un QDirModel, et un QLineEdit. J'ai implementé le grag'n'drop pour pouvoir glisser un dossier de l'arbre dans le QLineEdit.

    Je fais donc appel a la fonction filePath( const QModelIndex& ) du QDirModel pour recuperer le chemin du fichier, mais impossible de recupérer une chaine valide.

    J'ai de deux manieres de récupérer l'index par la vue : par la fonction indexAt( ) et currentIndex( ). A chaque fois l'index est valide mais la fonction filePath( ) de marche toujours pas.

    En espérant que vous pourrez m'aider,
    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Par défaut
    peut-on voir ton code d'implémentation du drag and drop ?

  3. #3
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Par défaut
    C'est plus ou moins le code de la doc...

    Voila pour le QTreeView :

    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
    39
    40
    41
    42
     
    DirView::DirView( QWidget* parent ) :
    	QTreeView( parent ),
    	__model( new QDirModel( ))
    {
    	setModel( __model );
    }
     
    ////////////////////////////////////////
     
    void DirView::mouseMoveEvent( QMouseEvent* event )
    {
    	if ( event->buttons( ) & Qt::LeftButton ) {
    		int distance = ( event->pos( ) - __dragStartPosition ).manhattanLength( );
    		if ( distance < QApplication::startDragDistance( )) {
    			startDrag( );
    		}
    	}
    	QTreeView::mouseMoveEvent( event );
    }
     
    ////////////////////////////////////////
     
    void DirView::startDrag( )
    {
    	QModelIndex index = currentIndex( );
    	if ( !index.isValid( )) {
    		return;
    	}
     
    	// ici ca passe
     
    	// on renseigne le drag
    	QMimeData* mimeData = new QMimeData( );
    	mimeData->setText( __model->filePath( index ));	// et là, chaine vide !!
     
    	QDrag* drag = new QDrag( this );
    	drag->setMimeData( mimeData );
     
    	// on lance le drag
    	drag->exec( Qt::CopyAction );
    }
    Et pour le QLineEdit:

    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
     
    DirEdit::DirEdit( QWidget* parent ) :
    	QLineEdit( parent )
    {
    	setAcceptDrops( true );
    }
     
    ////////////////////////////////////////
     
    void DirEdit::dragEnterEvent( QDragEnterEvent* event )
    {
    	if ( event->mimeData( )->hasFormat( "text/plain" )) {
    		event->acceptProposedAction( );
    	}
    }
     
    ////////////////////////////////////////
     
    void DirEdit::dropEvent( QDropEvent* event )
    {
    	setText( event->mimeData( )->text( ));
    	event->acceptProposedAction( );
    }

Discussions similaires

  1. Récupérer le chemin du fichier dans un input file
    Par michel81 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/12/2008, 11h29
  2. récupérer le chemin de l'mage dans le formulaire modifier
    Par majda_afkir dans le forum ASP.NET
    Réponses: 1
    Dernier message: 01/09/2008, 14h20
  3. Récupérer le chemin contenu dans une cellule
    Par Geprocor dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/06/2008, 15h32
  4. [D5] Récupérer le chemin de la base déclarée dans ODBC
    Par Oluha dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/11/2007, 14h35
  5. [VB6] Récupérer chemin dans server FTP et naviguer
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/07/2006, 23h03

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