C'est une bonne idée d'utiliser QString::fromStdWString
mais (!!!) Si Qt a été compilé avec exactement les mêmes en-têtes STL que votre projet. Sinon, vous pouvez vous amuser beaucoup, attraper un bug.
Si vous ne savez pas que les deux en-têtes STL sont la même utilisation QString::fromWCharArray
:
std::wstring wideString;
QString qtString = QString::fromWCharArray( wideString.c_str() );
Mettre à jour: Répondre à @juzzlin:
Permet d'imaginer que qt était construit avec le stl contenant ce qui suit std::wstring
:
class wstring { // I know, that there's no such class, but I'm shure you'll understand what I want to say
wchar_t * m_ptr;
size_t m_length;
...
};
et vous avez le stl contenant ce qui suit std::wstring
:
class wstring {
wchar_t * m_ptr;
wchar_t * m_the_end;
...
};
Si vous allez donner votre std::wstring
à Qt, il interprétera m_the_end
pointeur comme la longueur de la chaîne, et
Vous pouvez vous amuser beaucoup, attraper un bug