loadingWidget.h 837 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef LOADINGWIDGET_H
  2. #define LOADINGWIDGET_H
  3. #include <QStackedWidget>
  4. #include <QWidget>
  5. class QLabel;
  6. class QMovie;
  7. class LoadingWidget : public QWidget {
  8. Q_OBJECT
  9. public:
  10. static void init(QStackedWidget* stackedWidget);
  11. // 获取全局实例
  12. static LoadingWidget* instance();
  13. // 显示加载 (可选parent,不传则居中于屏幕)
  14. static void showLoading(QWidget* parent = nullptr, const QString& text = "Loading...");
  15. // 隐藏加载
  16. static void hideLoading();
  17. protected:
  18. void resizeEvent(QResizeEvent* event) override;
  19. private:
  20. explicit LoadingWidget(QWidget* parent = nullptr);
  21. static LoadingWidget* m_instance;
  22. void updatePosition();
  23. void initUI();
  24. QLabel* m_loadingLabel;
  25. QLabel* m_textLabel;
  26. QMovie* m_movie;
  27. };
  28. #endif // LOADINGWIDGET_H