建立这个字符串的最简单方法是什么?(我知道我可以在字符转换等方面走很长一段路……更喜欢留在 QString 的上下文中)thx
m_qstr = (m_qstr->toStdString() + "\r\n\r\n" + qstrResults.toStdString() + "\r\n");
使用QString 追加。
(*m_qstr).append("\r\n\r\n").append(qstrResults).append("\r\n");
你为什么打电话toStdString
?如果 m_qstr 是 a ,则连接andQString
应该没有问题。我在我的 Qt 应用程序中一直使用这种方法:QString
const char*
QString str = "Testing";
str += " concatenation.";
你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";