je voudrais sortir mon texte mais je n'arrive pas a l'afficher en QT
ifstream fichier("test.txt", ios::in); // on ouvre en lecture
if(fichier) // si l'ouverture a fonctionné
{
QString contenu;
getline(fichier, contenu); // on met dans "contenu" la ligne
QMessageBox::information(this, "phrase" + contenu);
fichier.close();
}
je n'arrive pas a afficher le contenu je comprend pas fau-t-il utiliser Qstring ? et comment ? parce que j'ai cherché en essayant divers trucs mais j'arrive pas ca plante a la compilation quand il faut afficher le texte.
Salut, à voir là, sans tester ce code voici la ligne qui me choque:
<code type=QString contenu;
getline(fichier, contenu); // on met dans "contenu" la ligne"cpp">
QMessageBox::information(this, "phrase" + contenu);</code>
Tu mélanges librairie standard et Qt. La librairie standard ne connaît pas Qt.
Tu devrais remplacer ces deux lignes par ceci:
regarde le code complet
(intéresse toi seulement si tu le veut bien a la fin du MaFenetre.cpp le début marche a coup sur) (et pour les #include je sais pas exactement ce qu'il faut mettre au .h, ce qu'il faut mettre au(x) .cpp)
(Je fais un ptit jeu de tables de multiplication pour mon ptit frere et ma ptite soeur)
#include "MaFenetre.h"
#include <time.h>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
MaFenetre::MaFenetre() : QWidget()
{
setFixedSize(500, 300);
srand(time(NULL));
m_boutonDialogue = new QPushButton("Commencer les tables de multiplication.", this);
m_boutonDialogue->move(200, 100);
QObject::connect(m_boutonDialogue, SIGNAL(clicked()), this, SLOT(ouvrirDialogue()));
}
void MaFenetre::ouvrirDialogue()
{
QMessageBox::warning(this, "Préparez vous", "Préparez vopus a commencer les \ntables de multiplication.");
int i = 0;
double elapsed = 0;
clock_t start, end;
start = clock();
while (i != 10) // tant que les 10 multiplications ne sont pas faites
{
int nombre1 = 1 + (int)((double)rand() / ((double)RAND_MAX + 1) * 12); // tire deux nombres au hazard
int nombre2 = 1 + (int)((double)rand() / ((double)RAND_MAX + 1) * 12);
int nb_correct = nombre1*nombre2;
int nombre = QInputDialog::getInteger(this, "Nombre", QString().number(nombre1) + " X " + QString().number(nombre2) + " ?");
while (nombre != nb_correct)
{
QMessageBox::critical(this, "Erreur", "Erreur !");
nombre = QInputDialog::getInteger(this, "Nombre", QString().number(nombre1) + " X " + QString().number(nombre2) + " ?");
}
i ++;
}
end = clock();
elapsed = ((double)end - start) / CLOCKS_PER_SEC;
QMessageBox::information(this, "Temps", "Ton temps est de " + QString().number(elapsed) + " secondes.");
ifstream fichier("test.txt", ios::in); // on ouvre en lecture
if(fichier) // si l'ouverture a fonctionné
{
char *c;
getline(fichier, c);
QString contenu(c);
QMessageBox::information(this, QString("phrase") + contenu);
fichier.close();
}
}
ifstream fichier("test.txt", ios::in); // on ouvre en lecture
if(fichier) // si l'ouverture a fonctionné
{
char *c;
getline(fichier, c);
QString contenu(c);
QMessageBox::information(this, QString("le titre"),QString("phrase") + contenu);
fichier.close();
}
donc j'ai écrit ca et ca me fait ca a la compilation (le probleme a pas l'air terrible vu ce qu'il marque je comprends ou est l'erreur mais j'arrive pas a comprendre quelle est cette erreur ^^)
Le message qui suit est une réponse automatique activée par un modérateur.
Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.
Merci d'utiliser les balises de code
Bonjour,
Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message en entourant votre code des balises <code > et </code > ?
Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.
Voici un exemple de code non coloré avec la balise "citation" (mauvais exemple) :
Citation
int main(int argc, char *argv[])
{
long choixOperation;
printf("Choisissez l'operation a effectuer");
/* etc. */
}
Voici maintenant le même code coloré, si vous aviez utilisé la balise "code" (bon exemple) :
int main(int argc, char *argv[])
{
long choixOperation;
printf("Choisissez l'operation a effectuer");
/* etc. */
}
C'est plus clair n'est-ce pas ?
N'hésitez pas à éditer votre message pour changer la balise afin de colorer votre code.
merci mais j'avais résolu le probleme depuis pas mal de temps
( il y a une fonction dans la doc de QT qui explique comment le faire)
donc j'utilise directement un QString et je ne passe pas par une chaine
merci quand même
A++
[QT] affichage de variables
× 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.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)
Ya aussi une fonction inverse