Ich habe ein QTableWidget, das zwei Spalten hat. Die Zellen der ersten Spalte haben unterschiedliche Texte. Dies mache ich über "setItem". Die Zellen der zweiten Spalte sind jeweils ComboBoxen mit dem gleichen Inhalt. Dies mache ich mit "setCellWidget". Das füllen der QTableWidget ist somit kein Problem.
Sobald ich aber auf den Button "Add Row" klicke, soll eine neue Zeile mit Text (1.Spalte) und ComboBox (2. Spalte) hinzugefügt werden. Leider fügt er aber nur zwei leere Zellen ein (siehe Anhang)
Muss ich das QTableWidget irgendwie aktualisieren? Mit update() gehts leider nicht
Hier mal die wichtigsten Codefragmente (ein wenig abgeändert):
Erstellen der Tabelle mit Inhalt:
Code: Alles auswählen
...
for (int i = 0; i < listeMitWerten.count() ; i++)
{
ui.tableWidget->setRowCount((i+1));
// Zelle (Spalte 1) füllen mit einem Text
QTableWidgetItem *pItem = new QTableWidgetItem(listeMitWerten.value(i));
ui.tableWidget->setItem(i, 0, pItem);
// ComboBox definieren
QComboBox *comboBox = new QComboBox();
// der ComboBox eine Liste zuordnen
comboBox->addItems(actorListe);
comboBox->setCurrentIndex(1);
// Zelle (Spalte 2) füllen mit ComboBox
ui.tableWidget_mapping->setCellWidget(row, 1, comboBox);
}
Code: Alles auswählen
int countRow = ui.tableWidget->rowCount();
ui.tableWidget->insertRow((countRow + 1));
ui.tableWidget->setRowCount((countRow + 1));
QTableWidgetItem *addItem = new QTableWidgetItem();
ui.tableWidget->setItem((countRow + 1), 0, addItem);
// Erzeugt zwar eine neue Zeile, ABER keine neue ComboBox
QComboBox *addComboBox = new QComboBox();
addComboBox->addItems(actorListe);
addComboBox->setCurrentIndex(1);
ui.tableWidget->setCellWidget((countRow + 1), 1, addComboBox);