Hallo,
Ich benötige für ein Tabellenprogramm mehrere QTableWidgetItems in einem 2-Dimensionalen Array, wobei die erste Dimension nicht festgelegt ist. Ich habe dazu in der Header-Datei folgendes deklariert:
QTableWidgetItem *items[][5];
Später werden die benötigten items in zwei for-Schleifen erzeugt und dem TableWidget zugeordnet:
items[i1][i2] = new QTableWidgetItem;
TableWidget1->setItem( i2, i1, items[i1][i2] );
Leider erhalte ich dabei immer einen Speicherzugriffsfehler beim Starten unter Linux. Wenn ich in der Header-Datei die größe des Arrays festlege, funktioniert es, nur ist das natürlich nicht Sinn der Sache.
Hier der Quellcode, das Relevante spielt sich in MainWindow.cpp und MainWindow.h ab.
main.cpp
MainWindow.h
MainWindow.cpp
FindDialog.h
FindDialog.cpp
Wahrscheinlich gibt es ein Problem mit dieser Funktion:
void MainWindow::createTable(){
int i1, i2;
twidget1 = new QTableWidget( 5, 5, this );
QStringList horizontal;
horizontal << "A" << "B" << "C" << "D" << "E";
twidget1->setHorizontalHeaderLabels( horizontal );
twidget1->setSortingEnabled( TRUE );
for( i1=0; i1<=4; i1++ ){
for( i2=0; i2<=4; i2++ ){
items[i1][i2] = new QTableWidgetItem;
items[i1][i2]->setText( "foo" );
twidget1->setItem( i2, i1, items[i1][i2] );
}
}
this->setCentralWidget( twidget1 );
}
Danke im Voraus.