将textEdit控件替换为tableWidget,并实现数据在表格中的显示

This commit is contained in:
mhvhm 2024-08-27 23:32:48 +08:00
parent 0daf385ccf
commit 39f2f599a2
2 changed files with 34 additions and 33 deletions

View File

@ -9,6 +9,10 @@ MainWindow::MainWindow(QWidget *parent)
{
ui->setupUi(this);
ui->tableWidget->setColumnCount(12);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽
ui->tableWidget->horizontalHeader()->setMinimumHeight(40);
pQfile_ori = new QFile;
pQfile_key = new QFile;
@ -38,7 +42,8 @@ void MainWindow::OpenExplorerFile(bool isOriFileOpen)
QString filePath = QFileDialog::getOpenFileName(this, "选择文件", DesktopLocation, "文本文件(*.txt)");
if (filePath.isEmpty() != true) // 判断路径是否有效
{
ui->textEdit->clear();
ui->tableWidget->clear();
ui->tableWidget->setRowCount(0);
if (isOriFileOpen)
{
if (pQfile_ori->fileName() != filePath)
@ -140,7 +145,7 @@ QString MainWindow::GetLampType(uint8_t lampidx)
QString MainWindow::AppendParse(DATA_TYPEDEF data)
{
QString ret = nullptr;
QString ret = "-";
switch(data.buf[0])
{
@ -290,29 +295,29 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data)
ret += "-";
if (data.buf[7] & 0x08)
{
ret += "m点亮"
ret += "m点亮";
}
else
{
ret += "m熄灭"
ret += "m熄灭";
}
if (data.buf[7] & 0x02)
{
ret += "r点亮"
ret += "r点亮";
}
else
{
ret += "r熄灭"
ret += "r熄灭";
}
if (data.buf[7] & 0x01)
{
ret += "l点亮"
ret += "l点亮";
}
else
{
ret += "l熄灭"
ret += "l熄灭";
}
}break;
@ -748,6 +753,7 @@ void MainWindow::PushButton_Clicked_Parse_clicked()
if (isFirstLine == true) // 跳过第一行的解密
{
isFirstLine = false;
ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "序号" << "传输方向" << "时间" << "状态" << "名称" << "帧ID" << "格式" << "类型" << "DLC" << "数据" << "解码" << "解析");
}
else
{
@ -768,28 +774,33 @@ void MainWindow::PushButton_Clicked_Parse_clicked()
bufData.len = ba.size();
memcpy(&bufData.buf, ba.data(), bufData.len);
disp.chop(1); // 删除最后一个字符
disp += "";
disp.chop(1); // 删除回车
for (uint8_t i = 0; i < bufData.len; i++)
{
bufData.buf[i] ^= key[i];
disp += QString("%1").arg(bufData.buf[i], 2, 16, QLatin1Char('0')) + " ";
}
disp += "】 -";
qDebug() << disp;
disp += "\t";
// 进行数据解析
disp += AppendParse(bufData);
disp += AppendParse(bufData); // 追加数据解析
disp += "\r\n";
int rowCnt = ui->tableWidget->rowCount();
ui->tableWidget->insertRow(rowCnt); // 增加一行
QStringList sl = disp.split("\t");
for(uint16_t i = 0; i < sl.size(); i++)
{
QTableWidgetItem* item = new QTableWidgetItem(" " + sl.at(i) + " ");
ui->tableWidget->setItem(rowCnt, i, item);
}
}
ui->textEdit->append(disp);
ui->tableWidget->resizeColumnsToContents();
byteArr = pQfile_ori->readLine(); // 继续下一行的读取
context = codec->toUnicode(byteArr);
disp = context;
}
QTextCursor cursor = ui->textEdit->textCursor();
cursor.movePosition(QTextCursor::Start);
ui->textEdit->setTextCursor(cursor);
}

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>1106</width>
<height>718</height>
<width>924</width>
<height>431</height>
</rect>
</property>
<property name="windowTitle">
@ -35,7 +35,7 @@
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="oriPath_hlayout" stretch="1,6,1">
<layout class="QHBoxLayout" name="oriPath_hlayout" stretch="1,10,1">
<item>
<widget class="QLabel" name="label_oriPath">
<property name="minimumSize">
@ -87,7 +87,7 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="keyPath_hlayout" stretch="1,6,1">
<layout class="QHBoxLayout" name="keyPath_hlayout" stretch="1,10,1">
<item>
<widget class="QLabel" name="label_keyPath">
<property name="minimumSize">
@ -186,17 +186,7 @@ background-color: rgb(91, 255, 88);</string>
</layout>
</item>
<item>
<widget class="QTextEdit" name="textEdit">
<property name="minimumSize">
<size>
<width>1100</width>
<height>400</height>
</size>
</property>
<property name="lineWrapMode">
<enum>QTextEdit::NoWrap</enum>
</property>
</widget>
<widget class="QTableWidget" name="tableWidget"/>
</item>
</layout>
</widget>
@ -224,7 +214,7 @@ background-color: rgb(91, 255, 88);</string>
<rect>
<x>0</x>
<y>0</y>
<width>1106</width>
<width>924</width>
<height>21</height>
</rect>
</property>