最近小伙伴们在使用qt5时发现有一些函数不能使用了,原因在于qt5及以上的版本中,取消了此类函数,改换成了其它函数,所以提示找不到此函数,下面我就关于qt5中,改变的函数列举出供大家学习,研究
1. text().toAscii()函数
//字符串转换为十六进制数据0-F
void uartconnect::StringToHex(QString str, QByteArray &senddata)
{
int hexdata,lowhexdata;
int hexdatalen = 0;
int len = str.length();
senddata.resize(len / 2);
char lstr,hstr;
for (int i = 0; i < len; ) {
// qt5一下版本使用
hstr = str[i].toAscii();
//qt5及以上版本使用
hstr = str[i].toLatin1();
if (hstr == ' ') {
++i;
continue;
}
++i;
if (i >= len) break;
lstr = str[i].toLatin1();
hexdata = ConvertHexChar(hstr);
lowhexdata = ConvertHexChar(lstr);
if ((hexdata == 16) || (lowhexdata == 16))
break;
else
hexdata = hexdata*16 + lowhexdata;
++i;
senddata[hexdatalen] = (char)hexdata;
++hexdatalen;
}
senddata.resize(hexdatalen);
}
在qt5版本一下可以使用,但是在qt5及以上版本中就替换成了 text().toLatin1函数,例如一下代码: