构建此字符串的最简单方法是什么? (我知道我可以在char铸造等方面走得很远...更喜欢留在QString的上下文中)thx
m_qstr = (m_qstr->toStdString() + "\r\n\r\n" + qstrResults.toStdString() + "\r\n");
答案 0 :(得分:5)
(*m_qstr).append("\r\n\r\n").append(qstrResults).append("\r\n");
答案 1 :(得分:2)
你为什么打电话给toStdString
?如果m_qstr是QString
,那么连接QString
和const 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";