QT 提示之右下角冒泡
生活随笔
收集整理的這篇文章主要介紹了
QT 提示之右下角冒泡
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實現原理
? 定時器啟動,右下角緩慢彈出,逐漸改變位置
? 讓界面停留一定的時間,時間過后自動關閉。
可以直接點擊關閉退出,也可以采用改變透明度的形式模糊退出。
#include "QToolTips.h" #include <QtWidgets/QApplication> #include <QDesktopWidget>QToolTips::QToolTips(QWidget *parent /*= 0*/): QDialog(parent) {setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);ui.setupUi(this);m_nDesktopHeight = QApplication::desktop()->height();m_dTransparent = 1.0;m_pShowTimer = new QTimer(this);m_pStayTimer = new QTimer(this);m_pCloseTimer = new QTimer(this);connect(m_pShowTimer, SIGNAL(timeout()), this, SLOT(onMove()));connect(m_pStayTimer, SIGNAL(timeout()), this, SLOT(onStay()));connect(m_pCloseTimer, SIGNAL(timeout()), this, SLOT(onClose()));}QToolTips::~QToolTips() {}void QToolTips::showMessage(const char* str) {ui.m_label->setStyleSheet("background-color:rgb(255,210,200);font:60px;color:blue");ui.m_label->setText(str);QRect rect = QApplication::desktop()->availableGeometry();m_point.setX(rect.width() - width());m_point.setY(rect.height() - height());move(m_point.x(), m_point.y());m_pShowTimer->start(5);}void QToolTips::onMove() {m_nDesktopHeight--;move(m_point.x(), m_nDesktopHeight);if (m_nDesktopHeight <= m_point.y()){m_pShowTimer->stop();m_pStayTimer->start(5000);}}void QToolTips::onStay() {m_pStayTimer->stop();m_pCloseTimer->start(100);}void QToolTips::onClose() {m_dTransparent -= 0.1;if (m_dTransparent <= 0.0){m_pCloseTimer->stop();close();}else{setWindowOpacity(m_dTransparent);}}
總結
以上是生活随笔為你收集整理的QT 提示之右下角冒泡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript编码encode和d
- 下一篇: 网络中广播和多播的认识