QList到QTableWidget

时间:2016-05-28 22:32:19

标签: qt qlist qtablewidgetitem

我想将存储在多个QList变量中的所有数据粘贴到一个中央QTableWidget

我有六个QList<QString>个变量,实际上每个长度都是7个。 在此例程的帮助下,我想将QList的每个元素写入QTableWidgetItem。解决这个问题的最简单有效的方法是什么?

 for (int ridx = 0; ridx < iRowCount; ridx++ )
 {
        tmptable = resultTable[ridx];
        for (int cidx = 0; cidx < iColumnCount; cidx++)
        {
          QTableWidgetItem* item = new QTableWidgetItem();

          item->setText(tmptable[ridx]);
          ui->tableWidget->setItem(ridx,cidx,item);    
        }    
 }

1 个答案:

答案 0 :(得分:0)

我跑了。 这是我将每个QList的所有元素添加到中央QTableWidget的最终代码。它并不是那种优雅的解决方案。可能还有其他(更好)的解决方案吗?

for (int cidx = 0; cidx < iColumnCount; cidx++)
{
    if (cidx==0)
    {
        // Column LoginName

        for (int ridx = 0 ; ridx < iRowCount ; ridx++ )
        {
            QTableWidgetItem* item = new QTableWidgetItem();

            item->setText(ListLoginName[ridx]);
            ui->tableWidget->setItem(ridx,cidx,item);

        }

    }
    if (cidx==1)
    {

        //Column Lastname
        for (int ridx = 0 ; ridx < iRowCount ; ridx++ )
        {
            QTableWidgetItem* item = new QTableWidgetItem();

            item->setText(ListLastname[ridx]);
            ui->tableWidget->setItem(ridx,cidx,item);

        }

    }
    if (cidx==2)
    {
        // Column Firstname
        for (int ridx = 0 ; ridx < iRowCount ; ridx++ )
        {
            QTableWidgetItem* item = new QTableWidgetItem();

            item->setText(ListFirstname[ridx]);
            ui->tableWidget->setItem(ridx,cidx,item);

        }

    }
    if (cidx==3)
    {
        // COlumn Position
        for (int ridx = 0 ; ridx < iRowCount ; ridx++ )
        {
            QTableWidgetItem* item = new QTableWidgetItem();

            item->setText(ListPosition[ridx]);
            ui->tableWidget->setItem(ridx,cidx,item);

        }

    }
    if (cidx==4)
    {
        // Column Email
        for (int ridx = 0 ; ridx < iRowCount ; ridx++ )
        {
            QTableWidgetItem* item = new QTableWidgetItem();

            item->setText(ListEmail[ridx]);
            ui->tableWidget->setItem(ridx,cidx,item);

        }

    }
    if (cidx==5)
    {
        // Column Telephone
        for (int ridx = 0 ; ridx < iRowCount ; ridx++ )
        {
            QTableWidgetItem* item = new QTableWidgetItem();

            item->setText(ListTelephone[ridx]);
            ui->tableWidget->setItem(ridx,cidx,item);

        }

    }
}