Если под строкой вы имеете в виду std::string
, вы можете сделать это следующим способом:
QString QString :: fromStdString (const std :: string & str)
std::string str = "Hello world";
QString qstr = QString::fromStdString(str);
Если под строкой вы подразумеваете кодировку Ascii const char *
, то вы можете использовать этот метод:
QString QString :: fromAscii (const char * str, int size = -1)
const char* str = "Hello world";
QString qstr = QString::fromAscii(str);
Если у вас есть const char *
, закодированный с помощью системной кодировки, которую можно прочитать с помощью QTextCodec :: codecForLocale () , тогда вам следует использовать этот метод:
QString QString :: fromLocal8Bit (const char * str, int size = -1)
const char* str = "zażółć gęślą jaźń"; // latin2 source file and system encoding
QString qstr = QString::fromLocal8Bit(str);
Если у вас const char *
в кодировке UTF8, вам нужно использовать этот метод:
QString QString :: fromUtf8 (const char * str, int size = -1)
const char* str = read_raw("hello.txt"); // assuming hello.txt is UTF8 encoded, and read_raw() reads bytes from file into memory and returns pointer to the first byte as const char*
QString qstr = QString::fromUtf8(str);
Существует также метод для const ushort *
, содержащий строку в кодировке UTF16:
QString QString :: fromUtf16 (const ushort * unicode, int size = -1)
const ushort* str = read_raw("hello.txt"); // assuming hello.txt is UTF16 encoded, and read_raw() reads bytes from file into memory and returns pointer to the first byte as const ushort*
QString qstr = QString::fromUtf16(str);