热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

qt加载弹窗设计

效果如下:我写的这个控件,唯一的特点就是不需要新建ui文件,直接使用纯代码实现,还带有阴影背景,代码如下&#x

效果如下:
在这里插入图片描述
我写的这个控件,唯一的特点就是不需要新建ui文件,直接使用纯代码实现,还带有阴影背景,代码如下:
h文件

class MyLoadMessage : public QDialog
{Q_OBJECT
public://加载弹窗方式构建,timeSec为自动关闭时间(单位:s),-1表示不会自动关闭explicit MyLoadMessage (const QString &text,int timeSec = -1,QWidget *parent = nullptr);~MyLoadMessage (){}
}

cpp文件

#include
#include
MyLoadMessage ::MyLoadMessage (const QString &text, int timeSec, QWidget *parent):QDialog(parent)
{//背景窗口设置this->setAttribute(Qt::WA_TranslucentBackground, true); //设置窗体透明this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); //设置无边框this->resize(561,206);this->show();//加载显示窗口QWidget *widgetPtr = new QWidget(this);widgetPtr->setMaximumSize(561,206);widgetPtr->setStyleSheet(QString("QWidget{background:#F6FBFF;border-radius:4px;}"));//设置显示窗口带背景阴影QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);//实例阴影shadowshadow->setOffset(0, 0); //设置阴影偏移shadow->setColor(QColor("#444444")); //设置阴影颜色shadow->setBlurRadius(18); //设置阴影圆角widgetPtr->setGraphicsEffect(shadow); //给嵌套QWidget设置阴影//设置背景窗口与显示窗口布局-格栅布局QGridLayout *gridLayout = new QGridLayout(this);gridLayout->addWidget(widgetPtr);gridLayout->setMargin(20); //给布局器设置边距,设置宽度为阴影的宽度this->setLayout(gridLayout);//窗口子控件加载,加载gif显示QLabel *labGif = new QLabel(widgetPtr);QMovie *movie = new QMovie(this);movie->setFileName(":/rs_Common/Images/MyMessageBox/loading.gif");//movie->setScaledSize(labGif->size()); //自动缩放labGif->setMovie(movie);movie->start();//加载显示的主体内容QLabel *labText = new QLabel(text,widgetPtr);labText->setMinimumSize(300,200);labText->setWordWrap(true); //自动换行labText->setStyleSheet(QString("QLabel{font:20px Microsoft YaHei;}"));//子控件布局QHBoxLayout *hBoxLayout = new QHBoxLayout(widgetPtr);hBoxLayout->addSpacing(70);hBoxLayout->addWidget(labGif);hBoxLayout->addWidget(labText);hBoxLayout->addSpacing(30);//长时间未关闭,将自动释放关闭(默认不开启)if(timeSec > 0)QTimer::singleShot(timeSec*1000,this,[=](){delete this;});
}

使用方式:


//不会自动关闭
MyLoadMessage *load = new MyLoadMessage ("这是一个测试程序,测试加载弹窗");//如果窗口60s未释放,将会自动释放关闭
MyLoadMessage *load = new MyLoadMessage ("这是一个测试程序,测试加载弹窗",60);


推荐阅读
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 抽空写了一个ICON图标的转换程序
    抽空写了一个ICON图标的转换程序,支持png\jpe\bmp格式到ico的转换。具体的程序就在下面,如果看的人多,过两天再把思路写一下。 ... [详细]
  • C++ STL复习(13)容器适配器
    STL提供了3种容器适配器,分别为stack栈适配器、queue队列适配器以及priority_queue优先权队列适配器。不同场景下,由于不同的序列式 ... [详细]
  • ExcelApp#启动excel程序ExcelAppCreateOleObject(“Excel.Application”);#加载文件但不显示文件内容(true表 ... [详细]
  • 整个窗体当设置QT的窗体(QMainWindow,QDialog)时,直接用targetForm->setWindowOpacity()函数即可实现,效果为窗体及窗体内所有控件都透明化了。二、 ... [详细]
  • C#DataGridView控件中数据导出到Excel方法一:usingSystem;usingSystem.Collections.Generic;usingSys ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • WPF开发心率检测大数据曲线图的高性能实现方法
    本文介绍了在WPF开发中实现心率检测大数据曲线图的高性能方法。作者尝试过使用Canvas和第三方开源库,但性能和功能都不理想。最终作者选择使用DrawingVisual对象,并结合局部显示的方式实现了自己想要的效果。文章详细介绍了实现思路和具体代码,对于不熟悉DrawingVisual的读者可以去微软官网了解更多细节。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 转载:MFC 获得各类指针、句柄的方法
    2019独角兽企业重金招聘Python工程师标准转载:最近有些人在问MFC编程一些要点,有一些句柄的获取、指针的获取是 ... [详细]
  • unitUnit1;interfaceusesWinapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,Syst ... [详细]
author-avatar
jing2502857803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有