[Qt] Paramètres de fonctions...

Bonjour,
La j’ai un truc que j’ai pas compris:
Pourquoi ça ne veux pas utiliser un truc comme ça:

void MaFenetre::ouvrirDialogue(char Titre, char Texte) { //Code d'ouverture des boites de dialogues: QMessageBox::information(this, Titre, Texte); }
Dans MaFenetre.h j’ai ça:

void ouvrirDialogue(char Titre, char Texte);

Merci :slight_smile:

Le problème est :

char Titre, char Texte

tu demandes 1 seul caractère, je te conseille d’utiliser QString, un class qui ressemble à string sauf qu’elle est utilisée uniquement par Qt

Ben ça l’air mieux, le debbuguer ne m’insulte plus mais maintenant, la boite de dialogue ne s’affiche plus non plus.

void MaFenetre::ouvrirDialogue(QString Type, QString Titre, QString Texte) { //Code d'ouverture des boites de dialogues: if(Type == "question") { QMessageBox::question(this, Titre, Texte); } else if(Type == "information") { QMessageBox::information(this, Titre, Texte); } else if(Type == "warning") { QMessageBox::warning(this, Titre, Texte); } else if(Type == "critical") { QMessageBox::critical(this, Titre, Texte); } else { QMessageBox::warning(this, "Enrainement2 Error !!", "Impossible de définir le type de boite de dialogue a afficher, etes vous sur d'en avoir <b>défini le type?</b>"); } QMessageBox::critical(this, "Erreur?", "Si rien ne s'est passé avant cette boite c'est pas normal !"); }

QObject::connect(m_boutonDialogue, SIGNAL(clicked()), this, SLOT(ouvrirDialogue("question", "QT, Entrainement 2, Information", "Tout s'est passé correctement?")));
  void ouvrirDialogue(QString Type, QString Titre, QString Texte);

Vous avez une idée d’ou ça peu venir? :slight_smile:
Merci :smiley:

SLOT(ouvrirDialogue("question", "QT, Entrainement 2, Information", "Tout s'est passé correctement?"

tu ne peux pas définir les paramètres envoyés à un SLOT, tu peux seulement passer des paramètres des SIGNAUX à un SLOT. :wink:
Créer une autre void qui appelle ouvrirDialogue avec les paramètres que tu veux. :wink:

[…]

Houlà, non, c’est le meilleur moyen de ne plus s’en sortir.
On fait du C++ ici, pas du C, ou du “C with classes” :wink:

Tu as à ta disposition bien mieux :

-“La solution des développeurs du C++”, qui n’est pas char* mais std::string : cplusplus.com/reference/string/string/
Par exemple toutes les chaines manipulés par Game Develop sont des std::string : Je vais pas m’amuser à gérer avec des char* alors qu’une classe conçu par des experts est disponible.
-Si tu utilise Qt, la classe QString semble un bon choix.

Ça ne veut rien dire.
Sérieusement, pourquoi se casser la tête à allouer de la mémoire, la faire déborder car on s’y est mal pris, oublier de la libérer, alors qu’on peut utiliser std::string ? ( Ou QString ).

Crone123 n’arrive peut être pas à utiliser correctement QString, mais c’est pas une raison pour le pousser à faire des horreurs :stuck_out_tongue:

Oui, mais disons que moi, je suis plutôt dans le php…donc maintenant, je verrais, mais j’ai du mal avec le C++ :wink:

Mais c’est vrai qu’en C++, char, ça sert un peu a rien…