Hallo in die Runde,
ich möchte in meinem Projekt mehrere Bilder nacheinander anzeigen. Also eine Art Dia-Show. Allerdings stellt sich mir im Moment die Frage, wie ich dies am Besten umsetzen soll. Momentan habe ich alle vorhandenen Pfade der Bilder in einer QStringList abgelegt. Diese soll durchlaufen und die Bilder mit einer zeitlichen Verzögerung ausgegeben werden.
Irgendwie habe ich den Überblick über die möglichen / vorhandenen Funktionen diesbezühlich verloren. Ist es besser QPicture zu verwenden, oder doch eher QPainter? Und in welchen Schritten muss ich das anwenden, um zu dem gewünschten Ergebnis zu kommen?
Das ist jetzt vielleicht alles etwas schwammig formuliert, aber irgendwie kann ich es Momentan nicht formulieren. Fragt bei Unklarheiten einfach nach.
Vielen Dank
Heiko
[Qt4] Bilder nacheinander anzeigen (+.jpg)
aber ganz ruhig...
Bilder werden normalerweise in einem Fenster angezeigt, also brauchen wir eine entsprechende Basisklasse, zur Debatte stehen QWidget oder QScrollView. Darin zeichnen wir dann ein Bild, das geht mit QPainter::drawPixmap() in der überladenen paintEvent() oder viewportPaintEvent(). Nun möchtest du ja mehrere Bilder in einem Zeitintervall anzeigen, dafür:
1) Ermittle list aller Bilddateien
2) Definiere in der Bildfensterklasse Funktion setImage()
3) Rufe in den regelmässigen Zeitabständen in der Haptfensterklasse (QMainWindow) die Funktion setImage() auf. Dafür:
3a) Definiere ein QTimer Object
3b) Definiere einen Slot z.B. updateImage()
3c) verbinde QTimer mit updateImage()
3d) in updateImage():
3e) ermittle die nächste Bilddatei.
3f) lade sie
3?) rufe MyBildFenster::setImage() auf
fertig....
Bilder werden normalerweise in einem Fenster angezeigt, also brauchen wir eine entsprechende Basisklasse, zur Debatte stehen QWidget oder QScrollView. Darin zeichnen wir dann ein Bild, das geht mit QPainter::drawPixmap() in der überladenen paintEvent() oder viewportPaintEvent(). Nun möchtest du ja mehrere Bilder in einem Zeitintervall anzeigen, dafür:
1) Ermittle list aller Bilddateien
2) Definiere in der Bildfensterklasse Funktion setImage()
3) Rufe in den regelmässigen Zeitabständen in der Haptfensterklasse (QMainWindow) die Funktion setImage() auf. Dafür:
3a) Definiere ein QTimer Object
3b) Definiere einen Slot z.B. updateImage()
3c) verbinde QTimer mit updateImage()
3d) in updateImage():
3e) ermittle die nächste Bilddatei.
3f) lade sie
3?) rufe MyBildFenster::setImage() auf
fertig....