首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

QT利用QMovie实现动态加载、等待提示框

移动开发 7.75KB 31 需要积分: 1
立即下载

资源介绍:

有时候要进行某项后台处理,但后台处理时间很长,需要提示用户等待,这时候做一个动态等待窗口,可以清晰展示当前操作的状态,以便用户能够理解和接受。本实例实现方式为获取一张gif的资源图,然后使用QMovie 在一个QLabel 控件上加载显示gif的waiting等待动态。
#include "loadingdialog.h" #include LoadingDialog::LoadingDialog(QWidget *parent) : QDialog(parent) { m_pParent = parent; //如果需要显示任务栏对话框则删除Qt::Tool setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint); setAttribute(Qt::WA_TranslucentBackground, true); init(); } LoadingDialog::~LoadingDialog() { delete m_lable; delete m_movie; delete m_centerFrame; deleteLater(); } void LoadingDialog::init() { this->setFixedSize(100, 100); m_centerFrame = new QFrame(this); m_centerFrame->setGeometry(10, 10 ,this->width()-10, this->height()-10); //加载Loading动画 m_lable = new QLabel(); m_movie = new QMovie(":/res/loading.gif"); int size = qMin(m_lable->width(),m_lable->height()); m_movie->setScaledSize(QSize(size, size)); m_lable->setScaledContents(true); m_lable->setMovie(m_movie); m_movie->start(); QGridLayout *gridLayout = new QGridLayout(); gridLayout->setSpacing(0); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); gridLayout->setContentsMargins(2, 2, 2, 2); gridLayout->addWidget(m_lable); m_centerFrame->setLayout(gridLayout); m_pTimer = new QTimer(this); connect(m_pTimer, &QTimer::timeout, this, &LoadingDialog::onTimerTimeout, Qt::UniqueConnection); m_pTimer->start(10); } void LoadingDialog::move_to_center(QWidget *pParent) { m_pParent = pParent; if(pParent != nullptr && pParent != NULL) { int nParentWidth = pParent->width(); int nParentHeigth = pParent->height(); int nWidth = this->width(); int nHeight = this->height(); int nParentX = pParent->x(); int nParentY = pParent->y(); int x = (nParentX + (nParentWidth - nWidth) / 2); int y = (nParentY + (nParentHeigth - nHeight) / 2); this->move(x, y); } } void LoadingDialog::onTimerTimeout() { move_to_center(m_pParent); }

资源文件列表:

loadingDemo.zip 大约有11个文件
  1. loadingDemo/
  2. loadingDemo/loadingDemo.pro 664B
  3. loadingDemo/loadingdialog.cpp 1.94KB
  4. loadingDemo/loadingdialog.h 532B
  5. loadingDemo/main.cpp 172B
  6. loadingDemo/mainwindow.cpp 381B
  7. loadingDemo/mainwindow.h 376B
  8. loadingDemo/mainwindow.ui 994B
  9. loadingDemo/res/
  10. loadingDemo/res/loading.gif 3.81KB
  11. loadingDemo/ui.qrc 94B
0评论
提交 加载更多评论
其他资源 《整合 Spring Boot 和 Netty 实现 WebSocket》 代码写的太完美了!存一个!
《整合 Spring Boot 和 Netty 实现 WebSocket》 代码写的太完美了!存一个! 资源来自:https://blog.csdn.net/dot_life/article/details/136575529
AndroidStudio期末设计天气预报APP源代码+实验报告
​安卓APP期末设计作业 项目为https://www.bilibili.com/video/BV1QE411i7oQ/?spm_id_from=333.999.0.0&vd_source=30298dec9326e02d1a6336b519833fc4 实验报告包含背景、可行性分析、系统设计与实施和开发设计总结 GradleVersion为5.1.1
AndroidStudio期末设计天气预报APP源代码+实验报告 AndroidStudio期末设计天气预报APP源代码+实验报告 AndroidStudio期末设计天气预报APP源代码+实验报告
纯netty,没有websocket
纯netty,没有websocket
Qt学习记录(十)项目:数字炸弹/猜数字游戏
Qt学习记录(十)项目:数字炸弹/猜数字游戏 新手项目,佬们多多包含
C# 程序集的加载和卸载
帖子地址:https://blog.csdn.net/qq_38693757/article/details/140437283?spm=1001.2014.3001.5502
numpy for android编译配置补丁
python-for-android打包的apk,安装到android设备中不能使用numpy;应用此补丁可以修正numpy的编译配置,使打包的apk安装到android设备中可以正常使用numpy。
IxChariot测速工具
IxChariot测速工具
Windows Research Kernel源码下载,构建无报错!免费!!
windows server2003 enterprice sp1(包括镜像),构建时用vs2022(2019也行)打开.sln文件即可,选择x86,win32,在点右边空心绿三角,即可编译(已包括编译好的文件),等到VS弹出“无法启动程序······”时,构建成功,进入 项目文件夹\base\ntos\build\exe\,编译成品为wrkx86.exe,正常情况下双击会报错。
Windows Research Kernel源码下载,构建无报错!免费!! Windows Research Kernel源码下载,构建无报错!免费!!