dodawanie elementów do QComboBox umieszczonego w QtableWidget

dodawanie elementów do QComboBox umieszczonego w QtableWidget
SH
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 6 lat
  • Postów:69
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.

Kopiuj
 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:

Kopiuj
 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 ?

matek3005
  • Rejestracja:około 15 lat
  • Ostatnio:prawie 5 lat
  • Postów:358
1
Shial napisał(a):
Kopiuj
 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?

edytowany 1x, ostatnio: matek3005
SH
a tyle się głowiłem ;p
SH
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 6 lat
  • Postów:69
0

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

matek3005
  • Rejestracja:około 15 lat
  • Ostatnio:prawie 5 lat
  • Postów:358
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:

Kopiuj
 QComboBox *cb = qobject_cast<QComboBox*>(tableWidget.cellWidget(r, c)) 
edytowany 1x, ostatnio: matek3005

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.