QTextCursor cur=ui->textEdit_ID_pingbi->textCursor(); int position=ui->textEdit_ID_pingbi->document()->findBlockByLineNumber(ii).position();//选中指定行(选中行) cur.setPosition(position,QTextCursor::MoveAnchor); cur.select(cur.LineUnderCursor);//选中行 ui->textEdit_ID_pingbi->setTextCursor(cur);//设置光标,这样就显示出了选中的行 QString aaa=cur.selectedText();//选择光标选中的文字信息 //--------------------------------------- //查找ID位置 int ID_weizhi=aaa.indexOf("0x");//查到返回具体位置为正数,没有查到返回-1 if(ID_weizhi>=0){//查批到ID才... //取现并计算出ID QString ID_str=aaa.mid(ID_weizhi+2, 8);//取出ID对应的字符 bool ok; list_id_pingbi.id[list_id_pingbi.zongshu++]=ID_str.toUIn(&ok,16);//ID对应的16进字符转为10进制int,并存屏蔽ID数组 }这段程序哪地方有错误
时间: 2024-03-23 11:41:58 浏览: 59
Python库 | mypy_boto3_cur-1.17.103-py3-none-any.whl
这段程序有以下两处错误:
1. 第12行代码中 `toUIn` 应该为 `toUInt`,即将16进制字符串转为无符号整型数。
2. 第9行和第10行代码的逻辑有问题,应该在选中指定行之后再获取选中的文本信息,而不是在设置光标之前获取选中的文本信息。所以应该将第9行和第10行代码放到第11行代码之后。
修改后的程序如下所示:
```
QTextCursor cur=ui->textEdit_ID_pingbi->textCursor();
int position=ui->textEdit_ID_pingbi->document()->findBlockByLineNumber(ii).position();//选中指定行(选中行)
cur.setPosition(position,QTextCursor::MoveAnchor);
cur.select(cur.LineUnderCursor);//选中行
ui->textEdit_ID_pingbi->setTextCursor(cur);//设置光标,这样就显示出了选中的行
//---------------------------------------
//查找ID位置
QString aaa=cur.selectedText();//选择光标选中的文字信息
int ID_weizhi=aaa.indexOf("0x");//查到返回具体位置为正数,没有查到返回-1
if(ID_weizhi>=0){//查批到ID才...
//取现并计算出ID
QString ID_str=aaa.mid(ID_weizhi+2, 8);//取出ID对应的字符
bool ok;
list_id_pingbi.id[list_id_pingbi.zongshu++]=ID_str.toUInt(&ok,16);//ID对应的16进字符转为10进制int,并存屏蔽ID数组
}
```
这样修改之后,代码逻辑就正确了。
阅读全文