为以下内容构建QString指针?

时间:2013-08-05 19:50:49

标签: c++ qt

构建此字符串的最简单方法是什么? (我知道我可以在char铸造等方面走得很远...更喜欢留在QString的上下文中)thx

m_qstr = (m_qstr->toStdString() + "\r\n\r\n" + qstrResults.toStdString()  + "\r\n");

enter image description here

3 个答案:

答案 0 :(得分:5)

使用QString append

(*m_qstr).append("\r\n\r\n").append(qstrResults).append("\r\n");

答案 1 :(得分:2)

你为什么打电话给toStdString?如果m_qstr是QString,那么连接QStringconst char*应该没有问题。我一直用我的Qt应用程序使用这种方法:

QString str = "Testing";
str += " concatenation.";

答案 2 :(得分:1)

您的m_qstr是一个QString指针,您正在尝试为其分配std::string。首先,您需要取消引用指针以便获取对象,然后可以使用c_str()将std :: string转换为char *,以便QString可以复制它:

*m_qstr = (m_qstr->toStdString() + "\r\n\r\n" + qstrResults.toStdString()  + "\r\n").c_str();

另一种方式,可能更好的方法是不将所有内容转换为std::string并保留QStrings:

*m_qstr = *m_qstr + "\r\n\r\n" + qstrResults + "\r\n";