我有一个库,它给了我一个string_view
。将其放入QString
(而不是QStringView
)的最好方法是什么?
我做了QString::fromStdString(std::string(key).c_str())
,但这是最好的吗?
发布于 2021-02-06 16:40:43
去掉c_str()
,你不需要它,因为fromStdString()
需要一个std::string
(由此得名):
QString::fromStdString(std::string(key))
您还可以删除显式字符串构造,因为可以从std::string_view
构造std::string
QString::fromStdString(key)
也就是说,如果std::string_view
以null结尾(不能保证),则可以使用接受char*
的QString
构造函数
QString(key.data())
或者,如果std::string_view
是用拉丁文-1编码的,您可以使用:
QString::fromLatin1(key.data(), key.size())
或者,如果以UTF-8编码:
QString::fromUtf8(key.data(), key.size())
或者,如果以用户的默认区域设置进行编码:
QString::fromLocal8Bit(key.data(), key.size())
https://stackoverflow.com/questions/66074943
复制相似问题