QByteArray对象使用append方法出错

QByteArray对象使用append方法出错

QString QDlgLogin::encrypt(const QString &str)
{//字符串MD5算法加密
QByteArray btArray;
btArray.append(str);
QCryptographicHash hash(QCryptographicHash::Md5); //MD5加密算法
hash.addData(btArray); //添加数据
QByteArray resultArray=hash.result(); //返回最终的散列值
QString md5=resultArray.toHex();//转换为16进制字符串
return md5;
}

img

报错无append的成员函数
按Qt5.9C++编程指南书上敲的代码,查过头文件好像也没有漏。
请教各位帮忙解答一下

从Qt5.15版本开始,函数QByteArray::append(const QString&)已经被废弃了。你可以改成如下形式

btArray.append(str.toUtf8());

如果你确定str里不含有unicode字符,那么可以使用更快的函数

btArray.append(str.toLatin1());

报错信息截图看一下,有append函数啊,是不支持append一个QString吧

仔细看报错信息,到底是无append这个成员函数,还是无形参是字符串的重载

提示没有匹配的成员函数

img

你需要将str由QString类型转为const char *类型

img