将文本文件加载到Qt中的表格小部件中



如果我将文本文件加载到 QTextStream 中,我将如何用它的数据填充 TableWidget?文本文件以制表符分隔。这是我到目前为止所拥有的:

void MainWindow::startParsing()
{
            QStringList stringList;
            int countRows;
             QTextStream in(&textFile);
             QString line;
             if (textFile.open(QIODevice::ReadOnly))
             {
             do
             {
                 line = in.readLine();
                 stringList << line.split("t", QString::SkipEmptyParts);
             }
             while (!in.atEnd());
             }
             QSet<QString> set = stringList.toSet();
             foreach (const QString &value, set)
                 qDebug() << value;

            countRows = stringList.count();
            //--- define the table's shape ---
            ui->tableWidget_inputPreview->setRowCount(countRows);
            ui->tableWidget_inputPreview->setColumnCount(6);
            //--- create the horizontal (column) headers ---
            QStringList horzHeaders;
            horzHeaders << "HostName" << "Host IP" << "Area" << "Host Interface"
                        << "Router to Ext Network" << "Ext Routes";
            ui->tableWidget_inputPreview->setHorizontalHeaderLabels( horzHeaders );
            //--- create the vertical (row) headers ---
            QStringList vertHeaders;
            ui->tableWidget_inputPreview->setVerticalHeaderLabels( vertHeaders );
            //--- populate the table widget with data from txt file ---
            // TODO: insert data into table
}

以下是我正在使用的文本文件的示例:

#TEST 1                 
#HostName   HostIP  Area    Host Interface  Router to Ext NW    Number of Ext Routes
test1   9.1.1.1 0.0.0.0         
OMG_LOL_101 128.12.101.2    0.0.0.0         
OMG_LOL_102 128.12.102.9    0.0.0.0 128.112.102.9   128.112.102.10  100
WTF_BBQ_149 128.20.180.2    0.0.0.0                 
#HITL 2                 
#HostName   HostIP  Area    Host Interface  Router to Ext NW    Number of Ext Routes
test2   9.1.1.2 0.0.0.0         
WTF_BBQ_111 128.15.110.2    0.0.0.0         
WTF_BBQ_112 128.15.111.2    0.0.0.0         
WTF_BBQ_113 128.15.112.2    0.0.0.0 128.115.112.9   128.115.112.10  100
QTextStream in(&file);
QList< QStringList > lists;
QString line;
do {
    line = in.readLine();
    lists << line.split("t");
} while (!line.isNull())
// Set the table size (assuming the rows are all the same length).
tableWidget.setRowCount( lists.size() );
tableWidget.setColumnCount( lists[0].size() );
for ( int row = 0; row < lists.size(); ++row ) {
    for ( int column = 0; column < lists[row].size(); ++column ) {
        tableWidget.setItem(row, column, new QTableWidgetItem(lists[row][column]));
    }
}

相关内容

  • 没有找到相关文章

最新更新