#pragma once #include #include #include #include #include #include #include #include class QWaitingDialog : public QDialog { Q_OBJECT public: QWaitingDialog(QWidget* parent, QString msg); ~QWaitingDialog(); void changeMessage(QString msg); protected: private: QMovie* m_Move; QLabel* labelmsg; }; class QWaiting :public QObject { Q_OBJECT public: QWaiting(QWidget* parent, QString msg); template /** Ö´ÐкÄʱ¹¤×÷ **/ bool working(FunctionObject functionObject) { QFuture future = QtConcurrent::run(functionObject); while (!future.isFinished()) { QApplication::processEvents(QEventLoop::AllEvents); } return future.result(); } ~QWaiting(); void changeMessage(QString msg); private: QWaitingDialog* _dialog; };