Domanda

Sto cercando di cambiare un determinato messaggio di casella di testo. Visualizzerà il mio output.

Questo è quello che ho nel mio main ()

#include "form2.h"
....
string recvMSG = "random";

182 :: Form2 :: changeOutput (recvMSG);     ...

nel mio form2.h ho:

#include <string.h>    
#include <iostream>
#include <stdlib.h>    
...
    void Form2::changeOutput(string s)
    {
    QString s1 = i18n(s);
    output_box.setText(s1);

    }

Ma ottengo ancora: .ui / form2.h: 56: errore: & # 8216; stringa & # 8217; non è stato dichiarato

Grazie.

Modifica :: kk quindi ora mostra :: TCPClient.cpp: 182: errore: impossibile chiamare la funzione membro & # 8216; virtual void Form2 :: changeOutput (std :: string) & # 8217; senza oggetto

È stato utile?

Soluzione

string si trova nello spazio dei nomi std, quindi è necessario fare riferimento a esso come std::string oppure è necessario rendere il nome disponibile nell'ambito corrente con using namespace std; o using std::string;.

Anche l'intestazione si chiama string.h, non QString, quindi includila in questo modo:

#include <string>

In genere potresti anche voler usare i QT <=> invece di <=> se lo stai usando in connessione con componenti QT che di solito accettano <=> parametri.

Altri suggerimenti

Suppongo che dovresti usare l'intestazione <string> e quindi usare std::string (ancora meglio sarebbe const std::string &)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top