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 :

Sélection de fichier et utilisation de l'adresse


Sujet :

Qt

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Sélection de fichier et utilisation de l'adresse
    Bonjour,

    Je suis en train de réaliser une interface graphique pour mon programme et je bloque !

    Je souhaiterais pouvoir sélectionner un fichier (image) sur le disque dur et récupérer l'adresse de ce fichier pour l'utiliser, notamment pour afficher l'image sur l'interface graphique et pour que le programme (déjà réalisé) compresse l'image.

    J'arrive a ouvrir la boite de sélection de fichier en ajoutant un bouton à mon interface et en ajoutant les lignes suivantes à mon mainwindow.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void MainWindow::on_choisir_clicked()
    {
        QString fichier = QFileDialog::getOpenFileName(this, "Ouvrir unfichier", QString(), "Images (*.png *.gif *.jpg *.jpeg)");
     
    }
    Première difficulté: Si j'ai un label nommé imageo et que je veux venir modifier son attribut pixmap dans la fonction void MainWindow::on_choisir_clicked()

    Comment est-ce que je dois procédé ?
    quand je mets imageo->SetPixmap(fichier); dans la fonction précédente j'ai le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    erreur : 'imageo' was not declared in this scope



    Deuxième difficulté: Pour pouvoir utiliser l'adresse du fichier dans une autre fonction notamment mon programme, comment est-ce que je dois procéder ?

    J'ai l'impression qu'il y'a quelque chose de simple derrière ça mais ça fait une bonne semaine que je bloque la dessus ...

    Merci

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 432
    Points : 43 059
    Points
    43 059
    Par défaut prob ....scope
    ce serait pas plutôt imageo()->SetPixmap(fichier); ?

    Si tu veux récupérer le chemin de ton fichier : ( pas sûr que ce soit ce que tu veux )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     QFileInfo fi(fichier);
     QString name = fi.fileName();
    exemple fourni par QtAssistant

    Tu peux récupérer plein d'autres infos sur le fichier ( date, taille, droits, etc
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    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 : 35
    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
    Bonjour,

    Citation Envoyé par vacatata Voir le message
    quand je mets imageo->SetPixmap(fichier); dans la fonction précédente j'ai le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    erreur : 'imageo' was not declared in this scope
    Et donc, c'est vrai ou pas ? Où est-ce qu'est déclaré imageo ?

    Citation Envoyé par vacatata Voir le message
    Deuxième difficulté: Pour pouvoir utiliser l'adresse du fichier dans une autre fonction notamment mon programme, comment est-ce que je dois procéder ?

    J'ai l'impression qu'il y'a quelque chose de simple derrière ça mais ça fait une bonne semaine que je bloque la dessus...
    Simple peut-être, basique sûrement (j'entends par là qu'il te faudrait acquérir les bases de la POO et du C++ avant de poursuivre).

    Ça fait partie de la conception de ton programme. Une variable a une portée. Si tu crées la variable dans une fonction, tu limites sa portée à cette fonction (elle est détruite à la fin). Si cette variable était membre de ta classe (MainWindow), elle pourrait être utilisée par toutes les fonctions de celle-ci.

    Si l'utilisation de la variable reste plutôt locale, peut-être que tu peux simplement la passer en paramètre aux fonctions qui l'utilisent et qu'elle reste temporaire par rapport à la durée de vie de l'objet MainWindow.

Discussions similaires

  1. [VB.Net][Fichier ini] utilisation des API
    Par DonF dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/03/2009, 14h32
  2. Decompression d'un fichier sans utiliser les modules du CPAN
    Par choubiroute dans le forum Modules
    Réponses: 6
    Dernier message: 10/03/2006, 14h20
  3. [formulaire] sélection de fichiers
    Par Baadshah dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/12/2005, 10h39
  4. Besoin d'un conseil pour une sélection Access/fichier
    Par Oluha dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/03/2005, 19h10
  5. récupérer des nom de fichiers en utilisant *.ext
    Par drinkmilk dans le forum ASP
    Réponses: 11
    Dernier message: 15/12/2004, 09h21

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