この機能は、テキストファイルからハードドライブパーティションを読み込むことです。関数は正常に動作していますが、パーティションレイアウトの変更後にテーブルをリロードする場合は、以前に表示されたものと同じ量の空白行が追加され、単語の後にデータ行が書き込まれます。QTableWidgetを再ロードまたは再ペイントしている間に、空の行が追加され、これらの空白行の後にデータが書き込まれます。
void PartitionPage::processPartitions(QString line, int numberOfRows){
static int row = 0;
QStringList partitions = line.split(":");
qDebug() << numberOfRows;
//qDebug() << partitions.count();
if(partitionTable->rowCount() < (row + 1))
partitionTable->setRowCount(row + 1);
// we want to dispay first 7 columns only
//if(partitionTable->columnCount() < partitions.size())
// partitionTable->setColumnCount(partitions[0].size());
// Set Header Label Texts Here
// set the columncount to 7 as we only want to display first 7 column
partitionTable->setColumnCount(7);
partitionTable->setColumnWidth(0, 120);
partitionTable->setColumnWidth(1, 120);
partitionTable->setColumnWidth(2, 120);
partitionTable->setColumnWidth(3, 120);
partitionTable->setColumnWidth(4, 120);
partitionTable->setColumnWidth(5, 120);
partitionTable->setColumnWidth(6, 120);
partitionTable->setHorizontalHeaderLabels(QString("Partition; Start Sector; End Sector; Total Sectors; Partition Size; Partition ID; File System").split(";"));
for(int column = 0; column < partitionTable->columnCount(); column++){
QTableWidgetItem *newItem = new QTableWidgetItem();
newItem->setText(partitions.at(column));
partitionTable->setItem(row, column, newItem);
newItem->setTextAlignment(Qt::AlignCenter);
}
row++;
partitionTable->setAlternatingRowColors(true);
partitionTable->setSelectionBehavior(QAbstractItemView::SelectRows);
}
空白行
どのようにしてウィジェットを再読み込みまたは再描画しますか? – eyllanesc
// gpartedが見つかった後、ユーザーがパーティションを変更する可能性があるため、パーティションおよびリロードテーブルを検索します。 partitionTable-> clear(); findPartitions(); 遅延(3000); partitionTable-> repaint(); qApp-> processEvents(); – qurbanullah
プロジェクトが最小限であれば共有することができます。そうでない場合は、[mcve] – eyllanesc