Speed of gif
-
Hi guys!
This is a very simple question. I have a QLabel with a QMovie that reproduces a .gif... The thing is that I dont know how to show it smoothly, I mean the gif shows perfectly but it
s like "stucking". I tried increasing the speed but that doesn
t change anything...here is my code:@ int main(int argc, char *argv[])
{
QApplication a(argc, argv);
LoadingWidget *loadwidg = new LoadingWidget ();
loadwidg->show ();
qApp->processEvents ();
QApplication::setStyle (new IconSize ());
QCoreApplication::addLibraryPath (".");
MainWindow mainWin;
ajustarPreferenciasVentanaPrincipal (&mainWin);
//----------------------------------------------------------
//-----------------CONTROLADOR------------------------------
//----------------------------------------------------------
//some not interesting code
//----------------------------------------------------------
//-----------------FIN CONTROLADOR--------------------------
//----------------------------------------------------------
if (handler >= 0 && aux ==0 && capacidad >0){
mainWin.setHandler (handler);
loadwidg->~LoadingWidget ();
mainWin.show();
return a.exec();
}else{
if (capacidad == 0){
QMessageBox::critical (0, QString ("NO MORE REGISTERS TO STORE DATA"), QString ("No quedan más registros para guardar información fiscal\n\nNo se podrá realizar ninguna operación\nrelacionada con el controlador."), QMessageBox::Ok);
}else QMessageBox::information (0, QString ("NO FISCAL PRINTER"),QString ("No se ha encontrado el controlador fiscal\nconectado, no se podrá facturar"));
mainWin.setHandler (-1);
mainWin.show ();
loadwidg->~LoadingWidget ();
return a.exec ();
}
}@Thank you all in advance... Maybe its my slow computer, maybe its something i cant change...BTW QSplash window does not work for me, its not a solution :P
-
Anything less than 40 ms should be okay.
Otherwise, gifs are pretty slow, so it might be computer ;).
Can you upload a test gif to see the result? -
http://postimage.org/image/e8qj234cx/
thats the gif..I think it is more than 40ms...The thing is that I think that the load of the main is delaying the gif
-
Try creating a separate thread for doing all the loading, and in the main thread display only gif ( all in loadingWidget).
Otherwise, the delay is exactly 40ms, and it runs smoothly if I open it normally. -
I`ll try that approach
-
Hi i think im having some problems understanding how to use the threads to my benefit....
I`ve changed my main like this:
@#include <QtGui/QApplication>
#include <QObject>
#include "waitthread.h"
#include "loadthread.h"int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QApplication::setStyle (new IconSize ());LoadThread * load_thread = new LoadThread (); WaitThread * wait_thread = new WaitThread (); QObject::connect (load_thread, SIGNAL(load_finished()), wait_thread, SLOT(loading_finished())); load_thread->start (); wait_thread->start (); return a.exec ();
}@
the loadthread.cpp:
@LoadThread::LoadThread()
{
mainWin = new MainWindow ();
}void LoadThread::run (){
//--------------------do some stuff
emit load_finished ();
mainWin->show ();
}@And the waitThread.cpp
@#include "waitthread.h"WaitThread::WaitThread()
{
loadwidg = new LoadingWidget ();
loadwidg->show ();
}void WaitThread::run (){
}void WaitThread::loading_finished (){
loadwidg->close ();
delete loadwidg;
this->terminate ();
}
@Somehow..the mainWin doesnt show and the loadingwidget neither
--------EDIT
My bad loadingWidget is shown.----EDIT 2
found my first mistake the mainWin must be shown in a different method otherwise the thread finishes when run finishes