loadingdialog.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "loadingdialog.h"
  2. #include <QVBoxLayout>
  3. LoadingDialog::LoadingDialog(QWidget *parent) : QDialog(parent)
  4. {
  5. // 设置对话框无边框且模态显示
  6. setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
  7. // setModal(true);
  8. // 设置对话框背景透明
  9. setAttribute(Qt::WA_TranslucentBackground, true);
  10. // 创建垂直布局
  11. QVBoxLayout *layout = new QVBoxLayout(this);
  12. // 初始化加载图片标签
  13. loadingLabel = new QLabel(this);
  14. // 创建 QMovie 对象并设置动图文件
  15. loadingMovie = new QMovie(":/icons/icons/loading-un.gif"); // 替换为实际的加载图片路径
  16. if (loadingMovie->isValid()) {
  17. // 设置动图的显示大小
  18. int targetWidth = 200; // 可根据需要调整宽度
  19. int targetHeight = 200; // 可根据需要调整高度
  20. loadingMovie->setScaledSize(QSize(targetWidth, targetHeight));
  21. // 将 QMovie 对象设置给 QLabel
  22. loadingLabel->setMovie(loadingMovie);
  23. loadingLabel->setAlignment(Qt::AlignCenter);
  24. // 开始播放动图
  25. loadingMovie->start();
  26. }
  27. // 将加载图片标签添加到布局中
  28. layout->addWidget(loadingLabel, 0, Qt::AlignCenter);
  29. // 设置布局
  30. setLayout(layout);
  31. }
  32. LoadingDialog::~LoadingDialog()
  33. {
  34. delete loadingMovie;
  35. delete loadingLabel;
  36. }