dodawanie elementów do QComboBox umieszczonego w QtableWidget

0

Hey,
to znów ja :P
Tak więc tym razem chce wypełnić moje ComboBoxy w tabeli elementami z kolumn innej tabeli.
Mam taki Kod.

 for(int i=0;i<ui->tableWidget_2->columnCount();i++)
    {
        QComboBox *comboBox = new QComboBox;
        comboBox->addItem(QString::fromStdString("all"));
        for(int j=0;ui->tableWidget->rowCount();j++)
            comboBox->addItem(ui->tableWidget->takeItem(j,i)->text());
        ui->tableWidget_2->setCellWidget(0,i,comboBox);
    }

I gdy odpalam tą pętle po naciśnięciu buttona to on niespodziewanie końcyz swoje działanie.
Natomiast gdy:

 for(int i=0;i<ui->tableWidget_2->columnCount();i++)
    {
        QComboBox *comboBox = new QComboBox;
        comboBox->addItem(QString::fromStdString("all"));
        ui->tableWidget_2->setCellWidget(0,i,comboBox);
    }

Gdy pozbywam się pętli to on działa poprawnie i dodaje mi te elementy.
Pytanie czemu tak się dzieje i jak to naprawić ? Albo co zrobiłem źle ?

1
Shial napisał(a):
 for(int j=0;ui->tableWidget->rowCount();j++)

spójrz na warunek.

edit: może inaczej, sprawdziłeś czy przy wywołaniu takeitem pobierając pojedynczy element (w zasadzie komórkę) rowCount się zmniejsza?

0

a teraz prawdziwy problem. Jak się odwoływać do QComboBox ?

2
Shial napisał(a):

a teraz prawdziwy problem. Jak się odwoływać do QComboBox ?

Problem by to nie był gdybyś zajrzał w dokumentację! Możesz na przykład tak:

 QComboBox *cb = qobject_cast<QComboBox*>(tableWidget.cellWidget(r, c)) 

1 użytkowników online, w tym zalogowanych: 0, gości: 1