qt之 透明提示框
来源:互联网 发布:天涯国观 知乎 编辑:程序博客网 时间:2024/06/04 18:50
转载自: http://blog.csdn.net/liang19890820/article/details/51029825
简述
经常使用企鹅的小伙伴一定对登录失败的提示框很熟悉,主要涉及窗口透明并添加图标、提示信息、关闭按钮的显示等。
我们可以利用QWidget创建一个提示框,然后通过样式设置我们想要的效果。
- 简述
- 效果
- 源码
- 样式
效果
源码
QMessageWidget.h
#ifndef MESSAGE_WIDGET#define MESSAGE_WIDGET#include <QWidget>class QLabel;class QPushButton;class QMessageWidget : public QWidget{ Q_OBJECTpublic: explicit QMessageWidget(QWidget *parent = 0); ~QMessageWidget(); // 设置显示文本 void setText(const QString &text);protected: void paintEvent(QPaintEvent *event);private: QLabel *m_pMessageLabel;};#endif // MESSAGE_WIDGET
QMessageWidget.cpp
#include <QLabel>#include <QStyleOption>#include <QPainter>#include <QPushButton>#include <QHBoxLayout>#include "QMessageWidget.h"QMessageWidget::QMessageWidget(QWidget *parent) : QWidget(parent){ setFixedHeight(25); setAutoFillBackground(true); setObjectName("messageWidget"); // 提示图标 QLabel *pIconLabel = new QLabel(this); m_pMessageLabel = new QLabel(this); QPushButton *pCloseButton = new QPushButton(this); pCloseButton->setFixedSize(8, 8); pIconLabel->setFixedSize(16, 16); pIconLabel->setScaledContents(true); pIconLabel->setObjectName("informationLabel"); m_pMessageLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_pMessageLabel->setObjectName("highlightLabel"); m_pMessageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); pCloseButton->setObjectName("closeTipButton"); QHBoxLayout *pLayout = new QHBoxLayout(); pLayout->addWidget(pIconLabel); pLayout->addWidget(m_pMessageLabel); pLayout->addWidget(pCloseButton); pLayout->setSpacing(5); pLayout->setContentsMargins(3, 3, 5, 3); setLayout(pLayout); connect(pCloseButton, SIGNAL(clicked(bool)), this, SLOT(close()));}QMessageWidget::~QMessageWidget(){}// 设置显示文本void QMessageWidget::setText(const QString &text){ m_pMessageLabel->setText(text);}// 设置样式需要重写void QMessageWidget::paintEvent(QPaintEvent *event){ Q_UNUSED(event); QStyleOption opt; opt.init(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);}
样式
// 界面样式QWidget#messageWidget { background: rgba(255, 255, 255, 20%);}// 提示信息样式QLabel#highlightLabel { color: rgb(0, 160, 230);}// 图标样式QPushButton#closeTipButton { border-radius: none; border-image: url(:/Images/tipClose); background: transparent;}QPushButton#closeTipButton:hover { border-image: url(:/Images/tipCloseHover);}QPushButton#closeTipButton:pressed { border-image: url(:/Images/tipClosePressed);}
这里实现了设置信息,隐藏等效果,可以在此基础上进行扩展。背景色、字体颜色、图标等样式都可以自行设置,主要是实现思路,愿大家共勉
0 0
- Qt之透明提示框
- Qt之透明提示框
- qt之 透明提示框
- qt之透明提示框
- Qt之透明提示框(模拟QQ)
- Qt之透明提示框(模拟QQ)
- Qt之窗体透明
- Qt之窗体透明
- Qt之窗体透明
- Qt之窗体透明
- QT应用之透明背景
- Qt之 自定义QMessageBox(提示框)
- Qt之等待提示框(QPropertyAnimation)
- Qt之等待提示框(QTimer)
- Qt之QProgressIndicator(等待提示框)
- Qt之等待提示框(QMovie)
- Qt之等待提示框(QTimer)
- Qt之QLineEdit之透明设置
- Machine Learning(by Andrew Ng) 学习笔记
- NS3
- hibernate Query介绍
- STL的erase()陷阱-迭代器失效总结
- JS 原生多图预览图片
- qt之 透明提示框
- jsPlumb.js(连线器)API阅读笔记
- JSP中在JS函数中嵌套Java代码的执行问题
- Tomcat配置环境变量
- Pycharm——取消自动保存
- Linux的 错误码信息 windows的错误码信息
- C语言中的 static变量、static函数
- 第八届蓝桥杯省赛经验
- 复选框