Da Qstring a string e viceversa
Quando si sviluppa con le Qt si incappa spesso in problemi incompatibilità tra le classi native del C++ e del framework.
Nel caso specifico mi sono trovato a dover fare la conversione da QString a string e viceversa.
Questo perchè ho una classe che svolge determinate operazioni al di fuori del fremwork e che ha una risultato raccolto dalla gui.
Nello specifico la classe è questa:
#include "scan.h"
#include <stdio.h>
#include <stdlib.h>
#include <string>
using std::string;
Scan::Scan()
{
}
string Scan::scanNetwork(string cmd)
{
char *buf = &cmd[0];
FILE *p = popen(buf, "r");
string s;
for (size_t count; (count = fread(buf, 1, sizeof(buf), p));)
{
s += string(buf, buf + count);
}
pclose(p);
return s;
}
La classe prende come input quanto scritto in una QTextEdit e il risultato viene visualizzato in un'altra QTextEdit.
Solo che personalmente nella classe preferisco usare le librerie standard del C++, mentre nella QMainWindow usare le classi Qt.
Vediamo quindi come fare i due passaggi.