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

C++ Discussion :

QFile Qt Creator


Sujet :

C++

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut QFile Qt Creator
    Bonjour, j’ai créer une application avec deux classes dedans. J’aimerai définir un QFile dans une première classe et l’utiliser dans la deuxième pour récupérer des données de mon fichier. Cependant je n’arrive pas à ouvrir mon fichier avec deux classes.

    Savez vous comment je pourrai faire ?

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 058
    Billets dans le blog
    142
    Par défaut
    Bonjour,

    Je pense qu'habituellement, on ferait une classe dédié à l'ouverture et la gestion du fichier (lecture/écriture du données). Ensuite, les autres classes appellent des fonctions membres de cette classe gérant le fichier.
    Si c'est vraiment le QFile que vous voulez partager (ce qui ne me semble pas une bonne idée, mais pourquoi pas), vous pourriez toujours créer une fonction QFile& getFile() dans la classe ouvrant le fichier, permettant à la classe de récupérer un accès au QFile.
    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
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2023
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2023
    Messages : 66
    Par défaut
    Bonjour,

    S'il y a deux classes distinctes sans doute une est appelée l'autre appelante. Peut-être mettre la création de QFile dans la classe appelante qui la transmet par référence à la classe appelée. Par exemple dans le constructeur de la classe appelée . L'ouverture ( et la fermeture ) de QFile se ferait dans la classe appelante. Mais bon je me hasarde.

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    Merci pour votre réponse!

    C’est ce que j’avais pensé faire mais je n’arrive pas à trouver de solution pour récupérer différents QFile et QString de la classe 1 à la classe 2…

  5. #5
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2023
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2023
    Messages : 66
    Par défaut
    De récupérer QFile et QString dans la classe appelée ?


    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
     
     
    class B 
    {
         public :
         QString  * s ;
     
         A (  QString & s1 ) 
         { 
            s = &s1 ;
         }
         QString&  get()
        {
             return  *s ;
        } 
     
        void do()
        {
            s->append( " ccc "); 
        }
     
    };
     
    class A 
    {
        QSring  s ;
        public:
        A() {}
        void run()
        {
             s = "xxxx" ;
             B b( s );
             b.do();
             s = b.get();
        } 
    };
    Doonez un exemple si possible.

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    Il faudrait que je récupère des éléments tels que des QFile et des QString de la classe 1 que j’appelle Folders pour les réutiliser dans la classe 2 que j’appelle Target. Mais je n’arrive pas à savoir quelle classe je dois include dans l’autre et ce que je dois ajouter dans mon .h et mon .cpp pour récupérer ces données.

    Ma classe Folders:


    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #include "Folders.h"
     
    Folders::Folders(Ui::MainWindow *ui, QObject *parent): QObject(parent), ui(ui)
    {
     
    }
     
    Folders::~Folders()
    {
     
    }
     
    void Folders::select_Folders()
    {
        QStringList selectedFiles;
     
        QFileDialog dialog(nullptr);
        dialog.setFileMode(QFileDialog::ExistingFiles);
        dialog.setOption(QFileDialog::ReadOnly, false);
        dialog.setNameFilter("Training Results Files (*.trainingresults)");
     
        if (dialog.exec())
        {
            selectedFiles = dialog.selectedFiles();
        }
     
        if(ui->dateEdit_Start->text()<element0 && ui->dateEdit_End->text()>element0)
        {
            QMessageBox::warning(nullptr,"information","it's ok");
        }
     
        if (selectedFiles.isEmpty())
        {
            return;
        }
     
        QFile file;
        QDomDocument xml_doc;
        QDomElement root;
     
        foreach (const QString &filePath, selectedFiles)
        {
            file.setFileName(filePath);
     
            if (file.open(QIODevice::ReadOnly))
            {
                if (xml_doc.setContent(&file))
                {
                    root = xml_doc.documentElement();
    //...
    }
    Ma classe Target:

    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
    #include "Target.h"
     
    Target::Target(Ui::MainWindow *ui, Folders *folders, QObject *parent) : QObject(parent), ui(ui), folders(folders)
    {
        Folders_function = new Folders(ui,nullptr);
    }
     
    Target::~Target()
    {
     
    }
     
    void Target::display_Target()
    {
        //Display guid and name
        if (file.open(QIODevice::ReadOnly | QIODevice::Text))
        {
            if (xml_doc.setContent(&file))
            {
                QDomElement vimedixAsset = xml_doc.documentElement().toElement();
                if (!vimedixAsset.isNull() && vimedixAsset.tagName() == "VimedixAsset")
                {
                    //Display guid
                    QString guidValue = vimedixAsset.attribute("guid");
                    ui->label_guid->setText("GUID : " + guidValue);
                    general_guid= guidValue;
     
                    //Display name
                    QString nameValue = vimedixAsset.attribute("name");
                    QStringList elements = nameValue.split("-");
                    ui->label_speciality->setText("Speciality :" + elements[2]);
                    ui->label_date->setText("Date : " + elements[0]);
                    ui->label_hospital->setText("Hospital : " + elements[1]);
     
                    element0 = elements[0];
                }
                file.close();
            }
        }
    dans cette partie de mon code avec mes deux classes qui ne sont pas dans la même feuille, j'aimerai récupérer QFile file et par exemple element0.

    je pense que je me suis bien embrouillée entre tous ces éléments car de base ils étaient dans la meme classe et la meme fonction mais j'ai préféré les séparer finalement...

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 446
    Par défaut
    Pensez à utiliser le bouton "#" pour insérer du code à vos posts, SVP.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ici, ça serait plus lisible.
    Je pense qu'il vous manque de concept de "forward definition", regardez sur le Net.

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    Merci pour vos réponses et votre aide !!

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

Discussions similaires

  1. [Visual Web] [SJSC] Java Studio Creator 2 est sorti
    Par Valère dans le forum NetBeans
    Réponses: 7
    Dernier message: 19/11/2007, 00h38
  2. Réponses: 0
    Dernier message: 07/11/2005, 22h59
  3. Nom de fichier PDF Creator
    Par le_parrain dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/02/2005, 18h11
  4. Réponses: 1
    Dernier message: 26/08/2004, 16h23
  5. 3D games creator
    Par SQUAL dans le forum DirectX
    Réponses: 2
    Dernier message: 21/02/2003, 17h44

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