一、需求
将由string生成的ByteArry打印到textEdit中,指定显示的列数。
二、代码
void MainWindow::on_pushButton_convert_clicked()
{
QString Str = ui->textEdit_string->toPlainText();
int Strszie = Str.length();
QString Showstr="";
QString hexstr = "";
int col = 20;
if(!ui->lineEdit_col->text().isEmpty())
{
col = ui->lineEdit_col->text().toInt();
}
ui->textEdit_hex->clear();
int rollcnt = (Strszie%col)?Strszie/col+1:Strszie/col;
for(int i = 0; i< rollcnt; i++)
{
for(int j = 0; j < col; j++)
{
int remaincnt = Strszie - (i*col + j);
if(remaincnt != 0)
{
hexstr.sprintf("0x%02x,",(unsigned)Str.at(i*col+j).toLatin1());
Showstr += hexstr;
}
else{
break;
}
}
ui->textEdit_hex->append(Showstr);
Showstr.clear();
}
}