Es una buena idea usar QString::fromStdWString
pero (!!!) Si se compiló QT con exactamente los mismos encabezados STL que tu proyecto. Si no, puedes divertirte mucho, atrapando un error.
Si no está seguro de que ambos encabezados STL tengan el mismo uso QString::fromWCharArray
:
std::wstring wideString;
QString qtString = QString::fromWCharArray( wideString.c_str() );
Actualizar: contestando a @juzzlin:
Vamos a imaginar que QT se construyó con el STL que contiene lo siguiente 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;
...
};
y usted tiene el STL que contiene lo siguiente std::wstring
:
class wstring {
wchar_t * m_ptr;
wchar_t * m_the_end;
...
};
Si le das tu std::wstring
a qt, interpretará m_the_end
Puntero como la longitud de la cuerda, y
Puedes divertirte mucho, atrapando un error.