[Development] QProgressDialog when setValue(0) is called

Thiago Macieira thiago.macieira at intel.com
Wed Dec 28 15:40:08 CET 2016

Em quarta-feira, 28 de dezembro de 2016, às 16:18:45 BRST, Berkay Elbir 
> Hello All,
> I have a class that is inherited from QProgressDialog. It sometimes
> crashes and its inside QProgressDialog class code.
> I detected that when the setValue(0); is called in its constructor,
> crash happens. When I commented out this function, It does not crash.
> Even if setValue(0) is called after constructing of object crash still
> occurs.
> This crash occurs when signals are emitted faster. Code piece shows
> how the function is called:
> ProgressDialog progress(nullptr);
> progress.setLabelText("Loading Result Files");
> QFutureWatcher<void> watcher;
> QFuture<void> future = QtConcurrent::run(myClassPtr,&myClass::myFunc);
> QEventLoop loop;
> QObject::connect(&watcher, SIGNAL(started()), &progress, SLOT(show()));
> QObject::connect(&watcher, SIGNAL(finished()), &progress, SLOT(hide()));
> QObject::connect(&watcher, SIGNAL(finished()), &loop, SLOT(quit()));
> QObject::connect(transientAnimation, SIGNAL(progress(int)), &progress,
> SLOT(setValue(int)));
> watcher.setFuture(future);
> loop.exec();
> progress signal is emitted inside myFunc() in another thread. In this
> function, multiple files are read in a folder and progress signal is
> emitted.
> Why does this crash occur?

Please attach or paste the backtrace, with line numbers from a debug build of 

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

More information about the Development mailing list