前言
在我们客户端、上位机软件开发中,基本每款软件开发都需要有弹窗,而且每次开发中,可能还需要重新进行设计,这样不仅浪费了开发时间,而且可能存在bug。
本文目的就是基于qt设计一款通用的弹窗类,且可支持多种弹窗,自定义弹窗风格,每次软件开发针对风格做少量修改即可。
弹窗分类
依据不同的应用场合,我们对所有弹窗进行一次分类,如下:
1、提示类型
-
普通提示
-
警告
-
错误
2、询问类型
3、加载类型
4、轻弹窗
弹窗定义
继承QWidget、QDialog对象。
设计的像Qt的QMessageBox一样可以直接静态调用。
一个对象可以实现多种弹窗。
弹窗属性设置
对于不同的弹窗类型,需要设置不同的属性。
1、背景透明
this->setAttribute(Qt::WA_TranslucentBackground, true); //设置窗体透明
2、无边框
this->setWindowFlags(Qt::FramelessWindowHint); //设置无边框,置顶
3、弹窗置顶
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); //设置无边框,置顶
this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog); //设置无边框,Dialog模式
4、与主界面是否脱离
设置父对象。
5、禁用主界面
this->setWindowModality(Qt::ApplicationModal); //禁用主窗口
1、首先窗口属性设置
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); //设置无边框,置顶
this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog); //设置无边框,Dialog模式
this->setWindowModality(Qt::ApplicationModal); //禁用主窗口