Qt之自定义界面(右下角冒泡)
Qt 自定义 界面 冒泡 右下角
2023-09-27 14:19:43 时间
简述
网页右下角上经常会出现一些提示性的信息,桌面软件中也比较常见,类似360新闻、QQ消息提示一样!
这种功能用动画实现起来很简单,这节我们暂时使用定时器来实现,后面章节会对动画框架进行详细讲解。
下面我们来实现一个右下角冒泡的功能。
效果
实现原理
显示
定时器启动,右下角缓慢弹出,逐渐改变位置驻留
让界面停留一定的时间,时间过后自动关闭。退出
可以直接点击关闭退出,也可以采用改变透明度的形式模糊退出。
连接信号与槽
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()));
实现
界面现实的时候调用showMessage(),然后启动定时器开始显示、驻留、关闭。
// 显示
void MainWindow::showMessage()
{
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 MainWindow::onMove()
{
m_nDesktopHeight--;
move(m_point.x(), m_nDesktopHeight);
if (m_nDesktopHeight <= m_point.y())
{
m_pShowTimer->stop();
m_pStayTimer->start(5000);
}
}
// 驻留
void MainWindow::onStay()
{
m_pStayTimer->stop();
m_pCloseTimer->start(100);
}
// 关闭
void MainWindow::onClose()
{
m_dTransparent -= 0.1;
if (m_dTransparent <= 0.0)
{
m_pCloseTimer->stop();
close();
}
else
{
setWindowOpacity(m_dTransparent);
}
}
相关文章
- Qt数据库应用14-超级自定义委托
- Qt编写可视化大屏电子看板系统24-模块2当月计划
- Qt开源作品23-颜色拾取器
- Qt开源作品19-通用数据库翻页查询
- Qt通用方法及类库3
- Qt编写安防视频监控系统24-自定义悬浮条
- Qt编写自定义控件32-等待进度条控件
- Qt编写自定义控件31-面板仪表盘控件
- Qt编写自定义控件30-颜色多态按钮
- Qt编写自定义控件28-颜色滑块面板
- Qt编写数据可视化大屏界面电子看板11-自定义控件
- Qt编写自定义控件19-图片背景时钟
- Qt自定义控件大全+designer源码
- Qt仿win7自动顶部最大化左侧右侧半屏效果
- Qt之QTimeLine
- Qt之自定义控件(开关按钮)
- Qt之QPauseAnimation
- Qt之自定义布局管理器(QCardLayout)
- Qt之自定义界面(窗体缩放-跨平台终极版)
- Qt之自定义界面(窗体缩放)