Как заставить QWizard загружать значение из файла при нажатии следующей кнопки при запуске?
У меня возникла ситуация, когда мне нужно отобразить разделы выбранного диска. Я выбираю диск в классе DiskPage и записываю его раздел в файл. Теперь я должен прочитать этот файл в классе PartitionPage. Что радует, на странице разделов функция getPartition используется для получения разделов. Но он читает файл при запуске (когда он пуст), а не когда содержимое записывается в файл, и нажимается следующая кнопка.
void PartitionPage::getPartitions(){
//partitionTable->clear();
int partitions_count = 0;
QFile file("/tmp/partitions.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
while (!file.atEnd()) {
QString line = file.readLine();
partitions_count++;
//qDebug() << line;
showPartitionsTable(line, partitions_count);
}
file.close();
file.remove();
}
void PartitionPage::showPartitionsTable(QString line, int numberOfPartitions)
{
partitionTable->repaint();
//int row = 0;
QStringList partitions = line.split(":");
qDebug() << numberOfPartitions;
//qDebug() << partitions.count();
if(partitionTable->rowCount() < (numberOfPartitions + 1))
partitionTable->setRowCount(numberOfPartitions);
// 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( static int row = 0; row < partitionTable->rowCount(); ++row ){
for( int column = 0; column < partitionTable->columnCount(); ++column ){
newItem = new QTableWidgetItem();
newItem->setText(partitions.at(column));
partitionTable->setItem(row, column, newItem);
newItem->setTextAlignment(Qt::AlignCenter);
}
}
partitionTable->setAlternatingRowColors(true);
partitionTable->setSelectionBehavior(QAbstractItemView::SelectRows);
partitions.clear();
}