Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

updating a qprogressbar with qfuturewatcher



  • I have searched all over the net, but everyone seems to be using a lame qprogressdialog, like I want another $*%& dialog to deal with. Anyway i am trying to update a qprogressbar with the following code.

        QFuture<void> videoscan = QtConcurrent::map(videofiles, pvideo );
        QFutureWatcher<void> scanwatcher;
        QObject::connect(&scanwatcher, SIGNAL(progressRangeChanged(int,int)),progress, SLOT(setRange(int,int)));
        QObject::connect(&scanwatcher, SIGNAL(progressValueChanged(int)), progress, SLOT(setValue(int)));
        scanwatcher.setFuture(videoscan);
    

    the qprogressbar is in the constructor for MainWindow like this

        progress = new QProgressBar(ui->statusbar);
        statuslabel.setPalette(ui->statusbar->palette());
        statuslabel.setText("Idle");
        progress->setVisible(true);
        progress->setMinimum(0);
        ui->statusbar->addWidget(&statuslabel);
        ui->statusbar->addPermanentWidget(progress);
    

    I do not get any errors, the progressbar is just not updated, what am I missing?



  • haha solved it. I had to make qfuturewatcher and qfuture member declarations and move the connect calls to the MainWindow constructor and it works!!!


Log in to reply