La conversion de QString à std::string

J'ai vu plusieurs autres postes sur la conversion de QString à std::string, et il devrait être simple. Mais de toute façon j'obtiens une erreur.

Mon code est compilé en un VS projet en utilisant cmake (je suis en utilisant VS express), donc il n'y a pas de problème avec les bibliothèques QT, et l'interface graphique que j'ai écrit des œuvres en dehors de cette partie.

J'ai un QComboBox cb qui détient les noms de certains objets, et un QLineEdit lineEdit qui me permet de spécifier le nom de l'objet que je recherche. Il doit exécuter une fonction qui est testé et de travail lorsque j'appuie sur un bouton aller, avec l'apport de l' QComboBox et la lineEdit comme arguments.

Voici le code lorsque le bouton est cliqué:

void gui::on_go_clicked(){
    std::string str(cb->currentText().toStdString());
    //std::cout << str << "\n";
    //QString qstr = lineEdit->text();
    //std::cout<<lineEdit->text().toStdString();
    updateDB(str, lineEdit->text().toStdString());
}

La première ligne, la création de str, fonctionne très bien. I. E. il n'y a pas de problème avec les fonctions de la bibliothèque ou toStdString(). Mais lorsqu'il exécute ma fonction, le programme des pauses, et ce n'est pas parce que de la fonction, c'est à cause de la partie où il essaie de convertir lineEdit->text().toStdString().

Ce n'est que lorsque j'écris le mot "test" dans la lineEdit boîte. J'ai vu d'autres réponses à parler d'unicode, que j'ai essayé brièvement, mais je peux supposer que l'utilisateur ne sera pas mettre de caractères spéciaux dans le lineEdit boîte, sauf '_' et '.', ce qui ne devrait pas l'unicode.

  • Aussi, je ne sais pas si ça compte, mais j'ai totalement oublier, si j'utilise QT4 ou QT5. J'ai complètement foiré en essayant d'obtenir les différentes versions de VS, Cmake, QT et de travailler tous ensemble (je suis stagiaire et avait pour tout mettre en place moi-même). Dans mon cmakelists.txt il dit FIND_PACKAGE(Qt4 REQUIRED). En fait, je ne pense pas que tout ce que je fais est différent entre QT4 et QT5...
  • Bon, je ne sais pas ce qui s'est passé. Plus tôt, quand j'ai essayé toUtf8().constData(), il n'a pas de travail et je ne voulais pas l'utiliser parce que je n'ai pas besoin d'unicode. J'avais juste écrit "test". Mais maintenant, quand j'utilise toUtf8().constData(), il fonctionne très bien, et arrive à ma fonction. Mais personne ne sait pourquoi je ne peux pas utiliser toStdString()? Je préfère garder cela simple.
  • Je suis en supposant que le cout de phrase, la mauvaise chaîne de caractères?