Ala*_*ing 9 c++ string qstring qt stl
我在一个正在研究图形和GUI组件的软件系统中广泛使用Qt.但是,对于大多数内部算法和数据处理,Qt起着较小的作用.
我经常会遇到从std :: string转换为QString的需要,反之亦然.我倾向于尽可能多地使用std :: string,并且只有当我需要将字符串传递给Qt类时才使用QString,就像那些使用文件系统的类一样.
正如我今天早上编程的那样,让我觉得在我的代码中散布std :: string和QString可能是一个糟糕的设计.我应该完全切换到QString吗?还有其他人遇到过这种设计选择吗?
Qt提供了许多与STL相同的功能,但由于Qt不太标准化和稳定,我仍然犹豫不决.
是的,我以前遇到过这种情况.我工作的程序在整个过程中使用了Qt,但是我不得不把它连接到一个预期的库std::string.它的好处QString是它明确使用Unicode,而C++标准库不保证编码.
解决方案是在这个库的边界转换
QString toQString(std::string const &s)
{
    return QString::fromUtf8(s.c_str());
}
std::string fromQString(QString const &s)
{
    return std::string(s.toUtf8().data());
}
因为图书馆制作std::string的包含UTF-8.
你似乎想要的恰恰相反:std::string全程使用并在Qt边界转换.这似乎完全没问题; 它需要比以往更多的工作QString,但是当你需要一个非QString接受库时你必须付出努力,而你的非GUI组件不依赖于Qt(欢呼!).
| 归档时间: | 
 | 
| 查看次数: | 3163 次 | 
| 最近记录: |