如何将 QString 转换为 QString 指针?

Posted

技术标签:

【中文标题】如何将 QString 转换为 QString 指针?【英文标题】:How do you convert QString to a QString pointer? 【发布时间】:2015-07-25 20:51:57 【问题描述】:

将 QString 转换为 QString 指针? 我有这个返回Qstring的方法

QString Redis:test() 返回(QString)“我正在测试”

在需要将返回值赋给指针的类中调用

QString* 测试::connectRedis() Redis* db = new Redis(this); QString* 测试 = db->test(); 退货测试;

我得到的错误:

错误:没有从“QString”到“QString *”的可行转换

【问题讨论】:

(QString) "Im Testing" 疯了!写QString("Im Testing")。当您想调用 QString 构造函数时,您的语法是 c 风格的转换。在您的情况下,调用 return "Im Testing" 也可以,因为隐式调用了 QString 构造函数。 就您的问题而言:请阅读有关 C++ 的书。您要问的是 C++ 基础知识。如果没有这些基础知识,您迟早会自责,因为 C++ 非常复杂,而且几乎没有安全保证。例如,使用现有答案,您必须自己管理内存,否则它会泄漏。 db 代码泄漏。 为什么这个问题被否决了?这是一个问答网站。 因为你的代码缺乏对 C++ 的基本理解,所以被否决了。可以通过google获得,不是本站的重点。这不是一个教程网站。 QT 中的隐式共享确实不是 C++ 的基础。我没有这么说。但是 c 样式将 c 字符串转换为类,并隐式地将 QString 转换为 QString* ARE 基本错误。另外,我自己不是 Qt 大师。我几乎没用过。 【参考方案1】:

你可以这样做:

QString* Test::connectRedis()

    Redis* db = new Redis(this);
    return new QString(db->test());

话虽如此,Qt 的类使用implicit sharing,所以返回一个像这样的QString 指针并不是真正必要的。只需返回QString 的副本即可。

【讨论】:

以上是关于如何将 QString 转换为 QString 指针?的主要内容,如果未能解决你的问题,请参考以下文章

在QT中如何将double转换为Qstring

如何将 ATL/MFC CString 转换为 QString?

如何将QString转换为char *或者相反

如何在 Qt 中将 QVariant 转换为 QString,反之亦然?

将 std::string 转换为 QString

在Qt中如何将QString转换为const char*