CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++][Qt]QFile

[spartan_111]
[spartan_111]
Niveau 4
10 novembre 2008 à 20:54:22

salut, j'apprend à utiliser Qt et je suis confronté à un problème : je comprend rien à la doc de Qt^^. Hors je veux pouvoir enregistrer le text écrit dans un QTextEdit dans un fichier .txt créé.
Je supose qu'il faut utiliser QFile mais je n'arrive pas à m'en servir vous pouvez m'aider ?

guyver2
guyver2
Niveau 10
11 novembre 2008 à 10:25:12

pourtant la doc de Qt est vraiment un exemple de documentation complete, claire et exhaustive...

Alors, à partir de cette page :
on peut lire l'exemple suivant :
void printError(const char* msg)
{
QFile file;
file.open(stderr, QIODevice::WriteOnly);
file.write(msg, qstrlen(msg)); // write to stderr
file.close();
}

que tu peux aisement transformer en ceci pour utiliser ton QTextEdit:

void printError(QTextEdit *te)
{
char *msg = (te->toPlainText()).toStdString().c_str();
QFile file;
file.open("ton fichier", QIODevice::WriteOnly);
file.write(msg, qstrlen(msg)); // write to stderr
file.close();
}

guyver2
guyver2
Niveau 10
11 novembre 2008 à 10:27:36

oups1 : j'ai oublier le lien
http://doc.trolltech.com/4.0/qfile.html#open-4

oups2 :

void printError(QTextEdit *te)
{
char *msg = (te->toPlainText()).toStdString().c_str();
QFile file;
FILE* f = fopen("tonfichier", "w");
file.open(f, QIODevice::WriteOnly);
file.write(msg, qstrlen(msg)); // write to stderr
file.close();
}

[spartan_111]
[spartan_111]
Niveau 4
11 novembre 2008 à 12:14:24

le problème c'est que quand je fais ça le message suivant s'affiche :

invalid conversion from 'const char*' to 'char*'

dnob700
dnob700
Niveau 10
11 novembre 2008 à 21:29:25

char *msg = (te->toPlainText()).toStdString().c_str();

Si c'est ça la bonne manière de faire, alors Qt ne vaut rien.

Qu'est ce que le QFile fait de plus que le FILE dans l'exemple ?

guyver2
guyver2
Niveau 10
11 novembre 2008 à 23:11:33

Cette ligne en particulier n'est pas issue de la doc de Qt (c'est de moi) mais par contre c'est vrai que ça parait étrange pour une bibliothèque "entièrement C++" de faire appelle a des char* pour gérer des chaine et à FILE pour gérer les fichier...

Dans l'exemple QFile ne fait rien de plus que FILE mais cette classe possède quand même quelques méthodes à coté.

sangohan55
sangohan55
Niveau 10
12 novembre 2008 à 18:03:43

+1 dnob700

Heuresement il est dans l'erreur, Qt c'est quand même + puissant que ça.

QFile* fichier = new QFile(path);
fichier->open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream in(fichier);
// pour vider le fichier si il y a du contenu
fichier->resize(0);
in << text_edit->toPlainText();

et voila en 5 lignes l'affaire est réglée.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment