c++ - Cannot insert an item that is already owned by another QTableWidget -
i'm having issues qtablewidgettable, after run findtableitems function resets rows/number appropriate size, not put data cells.
i can see objects holding correct data. recieve no compile errors debugger makes note:
qtablewidget: cannot insert item owned qtablewidget
what don't understand have 1 tablewidget ? whats deal ? i'm open different way of doing this.
void mainwindow::findtableitems(qstring searchitem) { qlist<int> matches; qlist<qlist<qtablewidgetitem*> > allrows; qlist<qtablewidgetitem*> temprow; qlist<qtablewidgetitem *> temptable = ui->tablewidget->finditems(searchitem,qt::matchcontains); foreach(qtablewidgetitem *rowptr,temptable) { int currentrow = rowptr->row(); matches.append(currentrow); } for(int = 0; < ui->tablewidget->rowcount(); ++i) { if(matches.contains(i)) { qtablewidgetitem *tempcasenameitem = new qtablewidgetitem; qtablewidgetitem *tempinterviewnameitem = new qtablewidgetitem; qtablewidgetitem *tempinterviewernameitem = new qtablewidgetitem; qtablewidgetitem *tempintervieweenameitem = new qtablewidgetitem; qtablewidgetitem *tempobservernameitem = new qtablewidgetitem; qtablewidgetitem *tempdateitem = new qtablewidgetitem; tempcasenameitem->settext(ui->tablewidget->item(i,0)->text()); temprow.append(tempcasenameitem); tempinterviewnameitem->settext(ui->tablewidget->item(i,1)->text()); temprow.append(tempinterviewnameitem); tempinterviewernameitem->settext(ui->tablewidget->item(i,2)->text()); temprow.append(tempinterviewernameitem); tempintervieweenameitem->settext(ui->tablewidget->item(i,3)->text()); temprow.append(tempintervieweenameitem); tempobservernameitem->settext(ui->tablewidget->item(i,4)->text()); temprow.append(tempobservernameitem); tempdateitem->settext(ui->tablewidget->item(i,5)->text()); temprow.append(tempdateitem); allrows.append(temprow); } } ui->tablewidget->setrowcount(0); foreach(qlist<qtablewidgetitem*> rowitems, allrows) { int row = ui->tablewidget->rowcount(); ui->tablewidget->insertrow(row); foreach(qtablewidgetitem *rowitem, rowitems) { for(int = 0; < 6; ++i) { ui->tablewidget->setitem(row, i, rowitem); // ui->tablewidget->item(row, i)->settextalignment(qt::alignvcenter); } } } }
i had bad loop, @ bottom, sorry's should have paid more attention
Comments
Post a Comment