首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何最好地将std::string_view转换为Q QString?

如何最好地将std::string_view转换为Q QString?
EN

Stack Overflow用户
提问于 2021-02-06 16:30:08
回答 1查看 238关注 0票数 1

我有一个库,它给了我一个string_view。将其放入QString (而不是QStringView)的最好方法是什么?

我做了QString::fromStdString(std::string(key).c_str()),但这是最好的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-06 16:40:43

去掉c_str(),你不需要它,因为fromStdString()需要一个std::string (由此得名):

代码语言:javascript
运行
复制
QString::fromStdString(std::string(key))

您还可以删除显式字符串构造,因为可以从std::string_view构造std::string

代码语言:javascript
运行
复制
QString::fromStdString(key)

也就是说,如果std::string_view以null结尾(不能保证),则可以使用接受char*QString构造函数

代码语言:javascript
运行
复制
QString(key.data())

或者,如果std::string_view是用拉丁文-1编码的,您可以使用:

代码语言:javascript
运行
复制
QString::fromLatin1(key.data(), key.size())

或者,如果以UTF-8编码:

代码语言:javascript
运行
复制
QString::fromUtf8(key.data(), key.size())

或者,如果以用户的默认区域设置进行编码:

代码语言:javascript
运行
复制
QString::fromLocal8Bit(key.data(), key.size())
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66074943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档