Qt实现Elementui警告的样式
这个是elemnt-ui的原先样式
这个是qt实现的基本样式
核心代码如下:
头文件#ifndef DTPOPUPWINDOW_H #define DTPOPUPWINDOW_H #include #include namespace Ui { class DTPopupWindow; } enum E_POPUP_TYPE { E_WARNING = 0, // 警告弹窗 E_ERROR, // 错误 E_INFO, // 消息 E_SUCCESS, // 成功 }; class DTPopupWindow : public QWidget { Q_OBJECT public: explicit DTPopupWindow(QWidget *parent = nullptr); ~DTPopupWindow(); /******设置弹窗类型**********/ void setPopupType(const E_POPUP_TYPE& popupType) { m_popupType = popupType; } void setPopupText(const QString&); void popupShow(); private slots: void slotTimer(); private: Ui::DTPopupWindow *ui; E_POPUP_TYPE m_popupType = E_POPUP_TYPE::E_INFO; QTimer* m_timer ; }; #endif // DTPOPUPWINDOW_H
实现部分:cpp#include "dtpopupwindow.h" #include "ui_dtpopupwindow.h" #include #include #define SUCCESS_BACKGROUND_COLOR QString("240, 249, 235") #define WARNING_BACKGROUND_COLOR QString("253, 246, 236") #define INFO_BACKGROUND_COLOR QString("244, 244, 245") #define ERROR_BACKGROUND_COLOR QString("254, 240, 240") #define SUCCESS_FONT_COLOR QString("103, 194, 58") #define WARNING_FONT_COLOR QString("230, 162, 60") #define INFO_FONT_COLOR QString("205, 173, 153") #define ERROR_FONT_COLOR QString("247, 108, 108") DTPopupWindow::DTPopupWindow(QWidget *parent) : QWidget(parent), ui(new Ui::DTPopupWindow) { setWindowFlags(Qt::WindowStaysOnTopHint); // 置顶 setWindowFlag(Qt::FramelessWindowHint); // setAttribute(Qt::WA_StyledBackground, true); // setStyleSheet("background-color: rgb(61, 60, 64); font: 12px; color: #EAEAEA;"); ui->setupUi(this); m_timer = new QTimer(this); // timer->setSingleShot(true);//仅触发一次 connect(m_timer, SIGNAL(timeout()), this, SLOT(slotTimer())); } DTPopupWindow::~DTPopupWindow() { delete ui; } void DTPopupWindow::setPopupText(const QString & qsText) { ui->lbl_tip->setText(qsText); } void DTPopupWindow::slotTimer() { m_timer->stop(); this->hide(); } void DTPopupWindow::popupShow() { QDesktopWidget *deskTop=QApplication::desktop(); auto deskRect=deskTop->availableGeometry(); QPoint normalPoint; normalPoint.setX(deskRect.width()/2 - this->width() /2); normalPoint.setY(20); this->setGeometry(normalPoint.x(),normalPoint.y(),this->width(),this->height()); QString base_color = ("QWidget { background-color: rgb(%1); font: 14px; color: rgb(%2) }"); switch (m_popupType) { case E_POPUP_TYPE::E_SUCCESS: { QString qsBB = base_color.arg(SUCCESS_BACKGROUND_COLOR).arg(SUCCESS_FONT_COLOR); this->setStyleSheet(base_color.arg(SUCCESS_BACKGROUND_COLOR).arg(SUCCESS_FONT_COLOR)); break; } case E_POPUP_TYPE::E_WARNING: { this->setStyleSheet(base_color.arg(WARNING_BACKGROUND_COLOR).arg(WARNING_FONT_COLOR)); break; } case E_POPUP_TYPE::E_INFO: { this->setStyleSheet(base_color.arg(INFO_BACKGROUND_COLOR).arg(INFO_FONT_COLOR)); break; } case E_POPUP_TYPE::E_ERROR: { this->setStyleSheet(base_color.arg(ERROR_BACKGROUND_COLOR).arg(ERROR_FONT_COLOR)); break; } default: break; } this->show(); m_timer->start(6000); // 持续6秒 }
ui文件部分QT开发交流+赀料君羊:714620761/******************************************************************************** ** Form generated from reading UI file "dtpopupwindow.ui" ** ** Created by: Qt User Interface Compiler version 5.14.2 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! ********************************************************************************/ #ifndef UI_DTPOPUPWINDOW_H #define UI_DTPOPUPWINDOW_H #include #include #include #include #include #include QT_BEGIN_NAMESPACE class Ui_DTPopupWindow { public: QHBoxLayout *horizontalLayout; QSpacerItem *horizontalSpacer; QLabel *lbl_tip; QSpacerItem *horizontalSpacer_2; void setupUi(QWidget *DTPopupWindow) { if (DTPopupWindow->objectName().isEmpty()) DTPopupWindow->setObjectName(QString::fromUtf8("DTPopupWindow")); DTPopupWindow->resize(493, 60); QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); sizePolicy.setHorizontalStretch(0); sizePolicy.setVerticalStretch(0); sizePolicy.setHeightForWidth(DTPopupWindow->sizePolicy().hasHeightForWidth()); DTPopupWindow->setSizePolicy(sizePolicy); DTPopupWindow->setMinimumSize(QSize(0, 60)); DTPopupWindow->setMaximumSize(QSize(16777215, 60)); horizontalLayout = new QHBoxLayout(DTPopupWindow); horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); horizontalSpacer = new QSpacerItem(193, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); horizontalLayout->addItem(horizontalSpacer); lbl_tip = new QLabel(DTPopupWindow); lbl_tip->setObjectName(QString::fromUtf8("lbl_tip")); horizontalLayout->addWidget(lbl_tip); horizontalSpacer_2 = new QSpacerItem(192, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); horizontalLayout->addItem(horizontalSpacer_2); retranslateUi(DTPopupWindow); QMetaObject::connectSlotsByName(DTPopupWindow); } // setupUi void retranslateUi(QWidget *DTPopupWindow) { DTPopupWindow->setWindowTitle(QCoreApplication::translate("DTPopupWindow", "Form", nullptr)); lbl_tip->setText(QCoreApplication::translate("DTPopupWindow", "TextLabel", nullptr)); } // retranslateUi }; namespace Ui { class DTPopupWindow: public Ui_DTPopupWindow {}; } // namespace Ui QT_END_NAMESPACE #endif // UI_DTPOPUPWINDOW_H
使用方式:DTPopupWindow popWindow; popWindow.setPopupType(popType); popWindow.setPopupText(qsInfo); popWindow.popupShow();
目前该方法已经支持了警告、成功、提示和失败四种样式
黄景瑜都戴过哪些西铁城腕表?黄景瑜,1992年11月30日出生,是兼具实力与流量的当红小生,他是阳光的大男孩,也是性感的型男。鲸鱼们肯定都知道。去年,黄景瑜成为知名腕表品牌西铁城的品牌代言人。那么,黄景瑜都戴
黔行之旅贵阳甲秀楼今天我们来聊一聊,全国重点文物保护单位,甲秀楼,位于贵州省贵阳市南明区翠微巷8号,地处南明河上,周围几乎全都高楼翻盖,但是每个到贵阳的人总会来观赏一番,它的历史文化特别悠久,有一种
佩特拉古城之旅云游风物之旅位于约旦哈希姆王国南部的佩特拉原是古阿拉伯纳巴泰王国首都,已有二千多年的历史了。作为古阿拉伯部落的纳巴泰人在二千多年前能够在石山上雕刻出如此壮观且具有古希腊后期建筑风格
航拍赣鄱生态山村冬韵美央广网抚州11月28日消息(记者胡斐)初冬时节,无人机拍摄下的江西省抚州市金溪县黄通乡曾家村一带,繁茂的树林与民居村道田园等相映成趣,构成一幅多姿多彩的生态山村画卷。航拍金溪曾家村
泰国自由行跟着BLACKPINK游苏梅岛,更新5个必做清单跟着BLACKPINKHouse打卡完曼谷景点后,这次泰国自由行,继续跟着BLACKPINK打卡泰国苏梅岛(KohSamui)吧。除了热门的泰国景点和餐厅,来到充满蓝天白云阳光沙滩
黑龙江游记之一百零八鸡西篇密山1包的轿车从虎头要塞到虎林火车站,已经是下午4点22分,正好赶上我昨天坐的那趟齐齐哈尔开往虎林的k7156次列车。下午4点52分由虎林往回返,进站买票捡票上车,准时开车,坐的是3车1
霍英东葬礼霍启刚手捧遗像,何鸿燊和李嘉诚扶灵,待遇堪比国葬2006年霍英东逝世,他逝世后,中央人民政府官网上专门发出公告,在他的葬礼上,很多社会上有名的人都聚集在了一起一面鲜艳的五星红旗盖在了他的棺椁上,著名的香港首富李嘉诚和有澳门赌王之
2006年王光美离世,儿子刘源抱着遗像痛哭,现场来了两位神秘人物2006年10月13日,刘少奇夫人王光美同志在北京安然辞世,享年85岁。这位知性大度端庄优雅的女性几乎具备了东方女性所有的传统美德。她不仅是前国家主席第一夫人,还是中国第一批原子物
河南球迷制作马宁遗像涉嫌违法!解说员袁甲就是流氓也要有底线河南嵩山龙门俱乐部外援恩里克多拉多因从身后故意撞击主裁判马宁,被中国足协给予停赛12个月罚款人民币20万元的严厉处罚。而在河南队接下来的一场比赛中,有人拍下了一些球迷在河南主场外,
河南球迷给马宁做黑白遗像,解说员这是流氓,要有做人底线在河南嵩山龙门与广州队的比赛里,有河南球迷在看台上打出了给裁判员马宁的遗像,引发了争议。在网络上流传的照片里,球迷举起了黑白的画幅,上面是马宁的照片,还写着卡牌大师永垂不朽,再当主
曝足协调查马宁遗像事件,河南队恐难逃处罚北京时间8月30日,球队球员多拉多刚刚受到12个月禁赛处罚的河南队,恐怕又要再次吃到足协的罚单。这一次,给俱乐部惹麻烦的不是球员,而是一些极不理智的河南队的球迷。在上一轮主场与广州
人到中年怎么潇洒的过下半生?1一切精力用来管理自己,不要花精力来管别人,除了自己的至亲的家人,周围所有的人都不要去管他们。少花精力,自己精神百倍。2一切让你烦躁的人,都不要多跟他们相处一秒,每个人都有每个人的
四联疗法治疗幽门螺杆菌不彻底,后续该怎么治疗?四联和三联疗法是临床上唯一有效的根除幽门螺杆菌的方案。虽然,四联疗法可以有效的使幽门螺杆菌的根除率达到百分之九十,但是有些患者在使用三联和四联方案后,依然发现幽门螺杆菌仍然存在。下
2021年打工怪象农民工找不到工作,老板招不到人,为啥呢?农民工40岁以上的找工作不容易,因为35岁以上企业都不要了!有些工厂招一线工人改到1855周岁了,但是需要两班倒,每天工作12小时,住的宿舍是812人,共用一个厕所。这待遇,怎么生
农民养老金这个问题怎么看?农民确实很辛苦,一辈子面朝黄土背朝天,风吹日晒辛勤劳作,粮食价格以大局为重没有增幅,一遇天灾更加惨淡,但他们无怨无悔的为人类生存坚持奉献。六七十岁仍在田间挥汗耕耘,令人心酸。政府如
公对私转账怎么合规?公转私一直以来都是大家比较关心的话题,因为有可能会受到重点监管。但在企业日常的经营和交易当中,也可能会涉及到不少公转私的情况,我们要从交易的目的过程税收以及事后监督等几个方面来保证
听说研究生在校期间有工资?读书还可以挣钱吗?你好,研究生在读是否有工资是根据学校学院导师来看的。就拿我自己来说,在xx大学读研二,老师是放羊式管理,这对学生来说有好有坏,好的是不用做一些杂七杂八与自己无关的活儿,坏的是不接活
北交所鸣钟开市!10只新股通通熔断,最高上涨超500!如何参与?怎么打新?开通北交所交易不是那么容易,有很多限制,感觉不是我们小散能玩得动的捂脸捂脸1个人投资者准入门槛为开通交易权限前20个交易日日均证券资产满足50万元。2具备2年以上的证券交易经验,身
为什么很多投资者希望贵州茅台跌?茅台股份绝对不是A股市场的反向指标,你们大多所以为的都错了曾几何时,A股市场喧嚣着一种声音,那就是近年以来茅台股价虚高,是导致A股大盘长期不振的罪魁祸首。很多不明真相的投资者以为,
南昌的工资水平是什么样的?南昌工资不是一般的低,因老家南昌的,我2014年到2018年陆续投了不少简历,给我的薪酬待遇与我期望的相差不是一点半点,最多的是一家商场1万月薪,其次是一家江西手机代理公司7,8千
天津公务员考试难吗?作为一个已经上岸的考生,跟大家说点细节问题吧。天津的公务员说难考也难,因为竞争对手的实力越来越强,因为不设置户籍限制,两河两山四省考生基本上瓜分了。说简单也简单,因为题型和内容近些
吃了三年的立普妥,再换其它的他汀药物可以吗?有哪些注意事项?立普妥是阿托伐他汀的原研制剂,他汀类药物通过抑制胆固醇合成降低低密度脂蛋白胆固醇LDLC,抑制血管炎性反应,稳定甚至逆转动脉粥样硬化斑块而降低动脉粥样硬化性心血管疾病ASCVD如冠