繁体   English   中英

QString的目的是什么?

[英]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的目的是什么?

我能想到的原因:

  1. std::string QString已成为Qt库方式的一部分。

  2. 它的界面包含很多Qt特定的类。 因此, QString的使用不能轻易被std::string取代。

  3. 它的界面比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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM