最基本的方法是什么?
发布于 2009-11-29 08:07:34
如果使用与STL兼容的方式进行编译,则QString
具有将std::string
转换为QString
的static method
std::string str = "abc";
QString qstr = QString::fromStdString(str);
发布于 2009-11-29 08:10:41
另一种方式:
std::string s = "This is an STL string";
QString qs = QString::fromAscii(s.data(), s.size());
这样做的好处是不使用.c_str()
,这可能会导致std::string
复制自身,以防最后没有地方添加'\0'
。
发布于 2014-09-17 23:02:36
我遇到这个问题是因为我在遵循答案时遇到了问题,所以我在这里发布了我的解决方案。
上面的示例都显示了包含仅包含ASCII值的字符串的示例,在这种情况下,一切工作正常。但是,在处理Windows中的字符串时,这些解决方案不起作用
在这种情况下,唯一能给出正确结果的代码是
std::string s = "Übernahme";
QString q = QString::fromLocal8Bit(s.c_str());
如果你不需要处理这样的字符串,那么上面的答案将会工作得很好。
https://stackoverflow.com/questions/1814189
复制相似问题