нужно внутри долгой ф-ции вызвать QEventLoop::processEvents?
                  
                  
                  Условный код:
                  
                  
                  // h file
                  
                  
                  class Worker : public QObject {
                  
                  
                      Q_OBJECT
                  
                  
                  public slots:
                  
                  
                      void start();
                  
                  
                      void stop();
                  
                  
                  
                  
                  
                  signals:
                  
                  
                      void started();
                  
                  
                      void progress(double p);
                  
                  
                      void finished();
                  
                  
                  
                  
                  
                  private:
                  
                  
                      bool _stop = false;
                  
                  
                  };
                  
                  
                  
                  
                  
                  // cpp file
                  
                  
                  void Worker::start() {
                  
                  
                      QEventLoop el;
                  
                  
                      while(true) {
                  
                  
                          if (_stop) {
                  
                  
                              break;
                  
                  
                          }
                  
                  
                          el.processEvents();
                  
                  
                      }
                  
                  
                  }
                  
                  
                  
                  
                  
                  void Worker::stop() {
                  
                  
                      _stop = true;
                  
                  
                  }
                  
                  
                
processEvents - статический метод. не нужно el объявлять так
а, ок) а в остальном правильно?)
https://doc.qt.io/qt-5/qcoreapplication.html#processEvents
Обсуждают сегодня