[英]What's the purpose of QString?
我是C ++和Qt的新手。 我已经和Qt Creator搞乱了几天,真正令我const QString&
是GUI组件如何只接受一个const QString&
而不是一个string
或一个std::wstring
。 为了与此保持一致,我一直在尝试从大多数函数调用中接受并返回QString
,但是我发现自己转换为std::string
并使用大多数标准库工具。
我的问题是,如果std::string
是标准库的一部分, QString
的目的是什么? 我想这对那些已经在使用Qt并且不希望另外依赖#include <string>
人有益,但说实话,如果你想对你的应用程序做任何有用的事情,你需要std::string
。 (这尤其适用于QChar
,因为char
是内置的。)
有人可以向我解释为什么这不是重新发明轮子以及这有助于跨平台?
我的问题是,如果
std::string
是标准库的一部分,QString
的目的是什么?
我能想到的原因:
在std::string
QString
已成为Qt库方式的一部分。
它的界面包含很多Qt特定的类。 因此, QString
的使用不能轻易被std::string
取代。
它的界面比std::string
丰富得多。
QString
优于std::string
一个优点是编写与平台无关的代码更容易。 对于Unicode支持,大多数平台使用UTF-8编码,而Windows使用UTF-16编码。
更令人困惑的是,虽然char
在所有平台上都是相同的大小,但wchar_t
却没有。 因此std::wstring
字符的大小因平台而异。
QString
通过在所有平台上使用UTF-16编码消除了这种混淆。 如果您需要与特定于平台的代码进行交互, QString
提供了帮助方法来转换为UTF-8,UTF-32,本机std
类型等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.