Qt二次开发qgc报错 append is deprecated

  • img


    请问各位朋友,这个报错如何解决呢。qt是5.15版本的,qgc源码是master版本

也就是说在qt5.15版本中,QByteArray的append()函数已经被废弃了,需要先把参数转为QString,然后再用QString的toUtf8()函数获取得到QByteArray,如下:

QString str = getQGCMapEngine()->userAgent();
QByteArray ua = str.toUtf8();

从Qt5.15版本开始,QByteArray::apend(const QString&)函数已经被废弃(参见下面链接代码)
https://codebrowser.dev/qt5/qtbase/src/corelib/text/qbytearray.h.html#338
你可以改成如下形式

ua.append(getQGCMapEngine()->userAgent().toUtf8());

如果你知道getQGCMapEngine()->userAgent()返回的字符串不包含unicode字符,那么你可以改成如下形式(执行更快)

ua.append(getQGCMapEngine()->userAgent().toLatin1());