[solved] QTableWidget => items werden nicht hinzugefügt
Verfasst: 4. August 2007 23:41
Hallo zusammen!
Ich hänge seit einiger Zeit an einem Problem fest.
Ich habe ein QTableWidget in das ich neue Zeilen einfüge.
Dabei handelt es sich um jeweils 4 Spalten, von der einer mit einer QProgressBar belegt wird. Soweit so gut.
Wenn ich zwei Zeilen einfüge funktioniert alles wunderbar, aber nach der 3. Zeile wird nurnoch die erste Spalte in der neuen Zeilen eingefügt und die restlichen 3 Spalten bleiben leer.
Dieser Code ist für das einfügen der Zeile verantwortlich
Table ist definiert als QTableWidget* Table;
Das Problem tritt auf meinem Windows XP Rechner mit Qt 4.2.2 und auf meinem kubuntu Rechner mit Qt 4.2.3 auf
Ich hänge seit einiger Zeit an einem Problem fest.
Ich habe ein QTableWidget in das ich neue Zeilen einfüge.
Dabei handelt es sich um jeweils 4 Spalten, von der einer mit einer QProgressBar belegt wird. Soweit so gut.
Wenn ich zwei Zeilen einfüge funktioniert alles wunderbar, aber nach der 3. Zeile wird nurnoch die erste Spalte in der neuen Zeilen eingefügt und die restlichen 3 Spalten bleiben leer.
Dieser Code ist für das einfügen der Zeile verantwortlich
Code: Alles auswählen
void MainWidget::addItem(Todo* todo)
{
if(!todo)
return;
int row = Table->rowCount();
Table->insertRow(row);
QProgressBar* bar = new QProgressBar();
bar->setRange(0,100);
bar->setValue(todo->Progress);
QString stat;
switch(todo->Status)
{
case 1:
stat = "In progress";
break;
case 2:
stat = "Finished";
break;
default:
stat = "Not started";
break;
}
QTableWidgetItem* it = new QTableWidgetItem(QString(" ")+todo->Name);
it->setData(Qt::UserRole+1,todo->id);
Table->setItem(row,0,it);
it = new QTableWidgetItem(QString(" ")+stat);
it->setData(Qt::UserRole+1,todo->id);
Table->setItem(row,2,it);
it = new QTableWidgetItem(QString(" %1").arg(todo->Priority));
it->setData(Qt::UserRole+1,todo->id);
Table->setItem(row,3,it);
it = new QTableWidgetItem(QString(" ")+todo->Cat->Name);
it->setData(Qt::UserRole+1,todo->id);
Table->setItem(row,4,it);
Table->setCellWidget(row,1,bar);
bar->setProperty("todoid",todo->id);
Table->setRowHeight(row,Table->rowHeight(row)*0.6);
}
Das Problem tritt auf meinem Windows XP Rechner mit Qt 4.2.2 und auf meinem kubuntu Rechner mit Qt 4.2.3 auf