Daumenkino
Verfasst: 6. April 2008 15:14
Hallo an Alle,
ich hab ein Problem, und zwar möchte ich eine kleine Animation schreiben, bei der die einzelnen Bilder so oft gewechselt werden, dass der Eindruck einer fliessenden Bewegung entsteht, ähnlich wie beim Daumenkino.
Leider klappt das nicht so wie ich mir das gedacht habe, vielleicht könnt ihr mir weiterhelfen???
Anbei mal den Code:
#include <qapplication.h>
#include <qpixmap.h>
#include <qlabel.h>
QWidget* showpicture(char*);
int main(int argc, char *argv[]){
QApplication own_app(argc, argv);
int i = 2;
char bild1[] = "pic1.jpg";
char bild2[] = "pic2.jpg";
QWidget* widget = showpicture(bild1);
own_app.setMainWidget(widget);
widget->show();
while(true){
if(i%2 == 0){widget = showpicture(bild1);}
else {widget = showpicture(bild2);}
widget->update();
sleep(1);
i += 1;
};
return own_app.exec();
}
QWidget* showpicture(char bild[]){
QWidget* own_widget = new QWidget();
own_widget->setGeometry(100, 100, 500, 40);
QString filename;
QPixmap picture;
if(!picture.load(bild)){
filename += "Datei nicht korrekt";
QLabel* error = new QLabel(filename, own_widget);
error->setGeometry(0, 0, 600, 40);
error->setPalette(QPalette(Qt::green, Qt::green));
error->setAlignment(QLabel::AlignCenter);
}
else{
QLabel* picturelabel = new QLabel(own_widget);
own_widget->resize(picture.width() + 20, picture.height() + 20);
own_widget->setBackgroundColor(Qt::white);
picturelabel->setPixmap(picture);
picturelabel->setGeometry(10, 10, picture.width(), picture.height());
picturelabel->resize(picture.size());
}
return own_widget;
}
ich hab ein Problem, und zwar möchte ich eine kleine Animation schreiben, bei der die einzelnen Bilder so oft gewechselt werden, dass der Eindruck einer fliessenden Bewegung entsteht, ähnlich wie beim Daumenkino.
Leider klappt das nicht so wie ich mir das gedacht habe, vielleicht könnt ihr mir weiterhelfen???
Anbei mal den Code:
#include <qapplication.h>
#include <qpixmap.h>
#include <qlabel.h>
QWidget* showpicture(char*);
int main(int argc, char *argv[]){
QApplication own_app(argc, argv);
int i = 2;
char bild1[] = "pic1.jpg";
char bild2[] = "pic2.jpg";
QWidget* widget = showpicture(bild1);
own_app.setMainWidget(widget);
widget->show();
while(true){
if(i%2 == 0){widget = showpicture(bild1);}
else {widget = showpicture(bild2);}
widget->update();
sleep(1);
i += 1;
};
return own_app.exec();
}
QWidget* showpicture(char bild[]){
QWidget* own_widget = new QWidget();
own_widget->setGeometry(100, 100, 500, 40);
QString filename;
QPixmap picture;
if(!picture.load(bild)){
filename += "Datei nicht korrekt";
QLabel* error = new QLabel(filename, own_widget);
error->setGeometry(0, 0, 600, 40);
error->setPalette(QPalette(Qt::green, Qt::green));
error->setAlignment(QLabel::AlignCenter);
}
else{
QLabel* picturelabel = new QLabel(own_widget);
own_widget->resize(picture.width() + 20, picture.height() + 20);
own_widget->setBackgroundColor(Qt::white);
picturelabel->setPixmap(picture);
picturelabel->setGeometry(10, 10, picture.width(), picture.height());
picturelabel->resize(picture.size());
}
return own_widget;
}