QT小白,最近在用qtablewidget的setitem添加資料,代碼如下,運行后只能顯示第二行的資訊,是哪里寫的有問題嘛,有沒有大神幫忙看一下該怎么改。

int rowCount = ui.detectingPointsTable->rowCount();//行數
ui.detectingPointsTable->insertRow(rowCount);
ui.detectingPointsTable->setItem(0, 0, new QTableWidgetItem(QStringLiteral("K:")+QString::number(50) + "," + QString::number(50)));
ui.detectingPointsTable->setItem(0, 1, new QTableWidgetItem("R:0 G:0 B:0"));
ui.detectingPointsTable->setItem(0, 2, new QTableWidgetItem(QString::number(0) + QStringLiteral("·")));
ui.detectingPointsTable->insertRow(rowCount);
ui.detectingPointsTable->setItem(1, 0, new QTableWidgetItem(QStringLiteral("J:")+QString::number(100) + "," + QString::number(100)));
ui.detectingPointsTable->setItem(1, 1, new QTableWidgetItem("R:0 G:0 B:0"));
ui.detectingPointsTable->setItem(1, 2, new QTableWidgetItem(QString::number(0) + QStringLiteral("·")));
uj5u.com熱心網友回復:
我發現不管添加多少行,都只顯示最后一行的資料
int rowCount = ui.detectingPointsTable->rowCount();//行數
ui.detectingPointsTable->insertRow(rowCount);
ui.detectingPointsTable->setItem(0, 0, new QTableWidgetItem(QStringLiteral("K:")+QString::number(50) + "," + QString::number(50)));
ui.detectingPointsTable->setItem(0, 1, new QTableWidgetItem("R:0 G:0 B:0"));
ui.detectingPointsTable->setItem(0, 2, new QTableWidgetItem(QString::number(0) + QStringLiteral("℃")));
ui.detectingPointsTable->insertRow(rowCount);
ui.detectingPointsTable->setItem(1, 0, new QTableWidgetItem(QStringLiteral("J:")+QString::number(100) + "," + QString::number(100)));
ui.detectingPointsTable->setItem(1, 1, new QTableWidgetItem("R:0 G:0 B:0"));
ui.detectingPointsTable->setItem(1, 2, new QTableWidgetItem(QString::number(0) + QStringLiteral("℃")));
……
ui.detectingPointsTable->insertRow(rowCount);
ui.detectingPointsTable->setItem(20, 0, new QTableWidgetItem(QStringLiteral("U:")+QString::number(100) + "," + QString::number(100)));
ui.detectingPointsTable->setItem(20, 1, new QTableWidgetItem("R:0 G:0 B:0"));
ui.detectingPointsTable->setItem(20, 2, new QTableWidgetItem(QString::number(0) + QStringLiteral("℃")));
ui.detectingPointsTable->insertRow(rowCount);
ui.detectingPointsTable->setItem(21, 0, new QTableWidgetItem(QStringLiteral("V:")+QString::number(100) + "," + QString::number(100)));
ui.detectingPointsTable->setItem(21, 1, new QTableWidgetItem("R:0 G:0 B:0"));
ui.detectingPointsTable->setItem(21, 2, new QTableWidgetItem(QString::number(0) + QStringLiteral("℃")));
uj5u.com熱心網友回復:
一開始是空表吧,那么rowCount = 0然后你insertRow(0),插入了第1行,設定了第1行的item
然后你又insertRow(0),又插入了第1行,把原來的第1行擠到第2行去了,然后你又把第2行(原來的第1行)的item全都重新設定了一遍
uj5u.com熱心網友回復:
你每插一行,rowCount要++,否則你永遠在往第一行插,你設定的永遠是你第一次插的那行uj5u.com熱心網友回復:
你每次插入之前都要insertRow
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/135564.html
標籤:Qt
下一篇:基于openvino 2019R3的推理性能優化的學習與分析 (三) 基于CPU的推理(inference)性能分析
