Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt - Problème] Changer de répertoire

Sujet résolu
    1 juin 2008 à 23:05:56

    'Jour,

    Je lis actuellement le tuto de M@teo sur le C++ et je viens de finir le TP pour Qt,
    Comme d'habitude j'essaye de suivre les suggestions de m@teo pour améliorer le programme et en apprendre d'avantage...

    J'en suis à vouloir enregistrer les fichiers .h et .cpp générés par le logiciel...

    J'ai crée pour cela un Slot personnalisé qui est appelé lorsqu'on clique sur le bouton enregistrer de la boite de dialogue...
    Il marche et mes deux fichiers sont correctement crées (Je dois juste encore me permettre le luxe de contrôler si ces fichiers existent déjà et dans ce cas demander validation à l'utilisateur)

    ... Bon, voilà, maintenant il y a un gros problème que je n'arrive pas à résoudre :
    Comment dire à ces maudis fichiers où se sauvegarder (par défaut il me les sauvegarde dans le même répertoire que l'application).

    J'ai essayé de plusieurs façon... mais plus qu'avancer à tâtons j'ai l'impression de tourner en rond...

    Voici le code du slot personnalisé

    void FenCodeGenere::enregistrerFichiers() {
    	QString directory = QFileDialog::getExistingDirectory(this);
    
    	if(directory.isEmpty())
    		return;
    
    	QFile *header = new QFile(this->getNomClasseH());
    	QFile *implementation = new QFile(this->getNomClasseCPP());
    
    	if(!header->open(QIODevice::WriteOnly)) {
    		QMessageBox::critical(this, "Erreur", "Erreur dans la sauvegarde du fichier .h");
    		return;
    	}
    	
    	if(!implementation->open(QIODevice::WriteOnly)) {
    		QMessageBox::critical(this, "Erreur", "Erreur dans la sauvegarde du fichier .cpp");
    		return;
    	}
    
    	QTextStream texteHeader(header);
    	QString codeH = this->getCodeH();
    	texteHeader << codeH;
    
    	QTextStream texteImplementation(implementation);
    	QString codeCPP = this->getCodeCPP();
    	texteImplementation << codeCPP;
    
    	header->close();
    	implementation->close();
    }
    


    ... Voilà, j'ai même déjà la QString qui contient le chemin !

    Merci d'avance :)

    PS : j'utilise un mac/intel & xCode.... (et s'il fallait tout dire, il y a autre chose que je ne pige pas... pourquoi, alors que j'ai inséré le code du traducteur dans le main et que les boites contextuelles sont maintenant en français (genre copier/coller etc) la boite qui permet de choisir le répertoire et, elle, toujours en anglais avec ses vilains Close/Choose)
    • Partager sur Facebook
    • Partager sur Twitter
      1 juin 2008 à 23:47:04

      QFile *header = new QFile(directory + QString("/") + this->getNomClasseH());
      QFile *implementation = new QFile(directory + QString("/") + this->getNomClasseCPP());
      
      • Partager sur Facebook
      • Partager sur Twitter
      Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
        2 juin 2008 à 1:28:20

        Oh mon dieu... sa m'avait traversé l'esprit mais je ne pouvais pas croire que c'était aussi simple....


        Merci merci, beaucoup beaucoup ! :D
        • Partager sur Facebook
        • Partager sur Twitter

        [Qt - Problème] Changer de répertoire

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown