Seite 1 von 1
Unverständnis QTableWidget
Verfasst: 1. Februar 2009 10:18
von plip
Kann mir jemand erklären warum dies:
Code: Alles auswählen
for(int i = 0; i < table->columnCount(); i++)
{
for(int j = 0; j < table->rowCount(); j++)
{
QString s = "Z: "+QString::number(j+1, 10)+" "+"S: "+QString::number(i+1, 10);
QTableWidgetItem* it = new QTableWidgetItem(s);
table->setItem(j+1, i+1, it);
}
}
zu folgender Ausgabe führt:
Verfasst: 1. Februar 2009 16:42
von solarix
evt hängts ja damit zusammen, dass du über die Tabelle hinausschreibst?
Code: Alles auswählen
for(... ; j < table->rowCount();... )
{
...
table->setItem(j+1, i+1, it);
Verfasst: 1. Februar 2009 18:41
von plip
Ich finde es zwar in der Doku nirgendwo, aber ich bin der Meinung, dass die Indizierung von Zeilen und Spalten bei 1 beginnt.
Wenn ich
schreibe, gibts nen segmentation fault.
Verfasst: 1. Februar 2009 18:48
von upsala
Wie kommst du darauf, daß die Zählung bei 1 beginnen sollte? Wann fängt bei C++ überhaupt mal eine Zählung bei 1 an? Ansonsten gibts ja noch die
Doku
Verfasst: 1. Februar 2009 18:49
von solarix
mir ist nichts.. aber auch wirklich gar nichts bekannt, was bei Qt einen Startindex von 1 hat...
Ich bin mir sicher, dass
Code: Alles auswählen
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QTableWidget w(19,1);
for (int r=0; r<w.rowCount(); r++)
for (int c =0; c<w.columnCount(); c++)
{
QString s = "Z: "+QString::number(r+1, 10)+" "+"S: "+QString::number(c+1, 10);
QTableWidgetItem* it = new QTableWidgetItem(s);
w.setItem(r,c, it);
}
w.show();
return app.exec();
}
auch bei dir funktioniert...