QList в QTableWidget

Я хотел бы вставить все свои данные, которые я хранил в нескольких 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);    
        }    
 }

person jollepe    schedule 28.05.2016    source источник
comment
Так что же не так с этим кодом?   -  person hyde    schedule 29.05.2016
comment
Возможно, вам нужна нестандартная модель и вы используете QTableView? Хотя в целом это будет более сложно, так что выше все в порядке, если вы не сталкиваетесь с проблемой производительности или чем-то еще.   -  person hyde    schedule 29.05.2016
comment
Я не думаю, что у меня проблемы с производительностью. Это просто стандартный QTableWidget показывает все записи базы данных. Каждый столбец базы данных хранится в переменной QList‹QString›. И я хотел бы показать все столбцы в один центральный QTableWidget. Этот код выше не работает должным образом, потому что я был принудительно закрыт после запуска приложения (QList вне допустимого диапазона). Есть ли простой способ объединить все QList в один QTableWidget?   -  person jollepe    schedule 29.05.2016


Ответы (1)


Я запустил его. Это мой последний код для добавления всех элементов каждого 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);

        }

    }
}
person jollepe    schedule 29.05.2016