suche einfaches Codebeispiel für animierten Bildwechsel

Verschiedenes zu Qt
Antworten
GoaSkin
Beiträge: 103
Registriert: 13. Juni 2007 00:14
Wohnort: Darmstadt

suche einfaches Codebeispiel für animierten Bildwechsel

Beitrag von GoaSkin »

Hallo,

ich habe mit Hilfe von Poppler-QT4 einen PDFViewer-Programmiert, für den ich gerne Übergänge beim Seitenwechsel hätte. Dabei habe ich zunächst versucht, mich an das Fademessage-Beispiel zu halten.

Bezüglich der Animation habe ich in der Hauptfunktion Folgendes stehen:

Code: Alles auswählen

    m_effect = new QGraphicsColorizeEffect;
    m_effect->setColor(QColor(61, 97, 33));
    m_effect->setStrength(1);
    m_effect->setEnabled(true);
    m_animation = new QPropertyAnimation(m_effect, "strength", this);
    m_animation->setDuration(500);
    m_animation->setEasingCurve(QEasingCurve::InOutSine);
    m_animation->setStartValue(0);
    m_animation->setEndValue(1);
    gfxView = new QGraphicsView;
    gfxView->setScene(&docScene);
    gfxView->setGraphicsEffect(m_effect);
In der Funktion zum Seitenwechsel:

Code: Alles auswählen

m_animation->setDirection(QAbstractAnimation::Forward);
m_animation->start();
QEventLoop loop;
QObject::connect(m_animation, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
docScene.clear();
docScene.addItem(QPixmap::fromImage(pdfImage).scaled(this->width(),this->height(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
m_animation->setDirection(QAbstractAnimation::Backward);
m_animation->start();
loop.exec();
Die Animation wird faktisch zwar ausgeführt, da beim Aufruf der Wechselfunktion 2x500ms verstrichen werden, jedoch ändert sich am Bild nichts.

Experimentell habe ich dann einmal versucht, der Pixmap einen Namen zu geben und auf Diese die Animation anzuwenden. Das Ergebnis ist dann aber, dass die Animation einmal erfolgreich (sichtbar abläuft) und beim zweiten Mal ein Segmentation Fault auftritt.

Jemand eine Idee oder ein banales Code-Beispiel parat?
Antworten