Qt | 仿安卓Toast实现异步渐变弹窗提示

源代码:https://gitee.com/zbylalalala1/qt_toast

示例截图

单点:

多次点击堆叠效果

概述

之前项目需求需要使用android进行开发,因为之前学习过java,简单学习了一下android就直接上项目了,在开发过程中发现android的Toast控件非常好用,于是就想使用qt实现一个类似的控件。并且能支持多种消息类型和显示时长,具有渐入渐出动画效果。

功能特性

计划设计集中固定的显示模式

  • 支持三种消息类型:

    • 普通消息 (NORMAL)
    • 警告消息 (WARNING)
    • 危险消息 (DANGER)
  • 支持两种显示时长:

    • 短时长 (SHORT_DUR - 1000ms)
    • 长时长 (LONG_DUR - 2000ms)
  • 自动堆叠显示多个消息

  • 平滑的淡出动画效果

  • 圆角矩形背景

  • 半透明效果

使用方法

基本调用

#include "Toast.h"
​
// 显示普通消息,短时长
Toast::showToast(parentWidget, "操作成功");
​
// 显示警告消息,长时长
Toast::showToast(parentWidget, "警告:磁盘空间不足", Toast::WARNING, Toast::LONG_DUR);
​
// 显示危险消息
Toast::showToast(parentWidget, "错误:文件保存失败", Toast::DANGER);
​
### 集成到项目
1. 将以下文件添加到您的项目中:
   - `Toast.h`
   - `Toast.cpp`
2. 在您的项目文件(.pro)中包含 Toast.pri:
include($$PWD/Toast/Toast.pri)

定义的枚举

枚举类型

enum Duration {
    LONG_DUR = 2000,  // 长时长(2000ms)
    SHORT_DUR = 1000  // 短时长(1000ms)
};
​
enum ToastType {
    NORMAL,   // 普通消息
    WARNING,  // 警告消息
    DANGER    // 危险消息
};

主要方法

  • showToast

    static void showToast(QWidget *parent, const QString &message, const ToastType &type = NORMAL, Duration duration = SHORT_DUR);
    
     显示 Toast 消息
    
posted @ 2025-05-23 14:46  来一碗糖醋锦鲤  阅读(61)  评论(0)    收藏  举报