Hallo Christian!,
danke für deine bisherigen Tipps. Ich habe folgendes gemacht. Ich habe ein paar Bilder in einem Ordner. Dazu schreibe ich eine Qwidget abgeleitet Klasse geschrieben. Unten sieht man den betreffenden Konstruktorausschnitt. Die Bilder-filenamen lade ich mit mittels Klassenfeld mittels der Klasse QFileInfoList und Dialog in den Heap. Ich hoffe ich hab das richtig verstanden. Ich erstelle nun einfach ein Pixmaparray für alle Bilder. und alloziiere ein QLabel-Feld.
Code: Alles auswählen
List = dir.entryInfoList();
QPixmap image[List.size()];
QLabel **la_View = new QLabel*[List.size()];
Weiter lade ich nun per Schleife nun jedes Bild einer Klasse in die entsprechenden Pixmaps und jede Pixmap in das entsrechende QLabel zu.
Code: Alles auswählen
for(int h = 0; h < List.size(); h++)
{
image[h].load( FileName.append(List.at(h).fileName()));
la_View[h]->setPixmap(image[h]);
}
Im nächsten Schritt packe ich alle wichtigen Daten in ein gridlayout. Die klappt auch recht wunder bar.
Code: Alles auswählen
gl_Main->addWidget(pb_Before, 15, 0, 2, 2 );
gl_Main->addWidget(pb_FullView, 15, 5 ,2 ,2 );
gl_Main->addWidget(pb_Next, 15, 10, 2, 2 );
gl_Main->addWidget(la_View[PicNum], 0, 0, gl_Main->rowCount()-2 ,gl_Main->columnCount(),Qt::AlignCenter);
for(int h = 0; h < 12; h++)
gl_Main->setColumnStretch(h,(int)round((float)width/12));
for(int h = 0; h < 16; h++)
gl_Main->setRowStretch(h,(int)round((float)width/16));
setLayout(gl_Main);
connect(pb_Before,SIGNAL(clicked()),this,SLOT(before_tab()));
connect(pb_Next,SIGNAL(clicked()),this,SLOT(next_tab()));
Der Konstruktor wird über einen anderen Konstruktor in einem Tabwidget aufgerufen und es läuft auch ganz gut. Die Layouts sitzen und das erste Bild erscheint. Mittels zwei der drei Pushbuttons geh ich nun die Qlabels durch, will das eine mit dem anderen ersetzen. Ich gebe dabei mal die eine Slotfunktion durch:
Code: Alles auswählen
gl_Main->removeWidget(la_View[PicNum]);
if(PicNum == 0)
PicNum = List.size()-1;
else
PicNum--;
gl_Main->addWidget(la_View[PicNum], 0, 0, gl_Main->rowCount()-2 ,gl_Main->columnCount(),Qt::AlignCenter);
PicNum ist die Laufvariable , welches bild im Moment angezeigt wird. und wird bei erreichen von Null oder dem größten Indizee wieder auf Ende oder Anfang gesetzt. Das ist auch nicht so wichtig. Vorher nehme ich das eine QLabel aus dem Gridlayout raus und setze ein neues ein. Leider gibt es in der Laufzeit eine Segmentation Violation. Ich komm hier im moment nicht weiter.
Schöne Grüße und besten Dank im vorraus,
Inge