源代码: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 消息

Qt | 仿安卓Toast实现异步渐变弹窗提示的更多相关文章

  1. WPF开发随笔收录-仿安卓Toast

    一.前言 在项目中,经常需要用到消息提醒功能,在以前接触安卓开发那会使用过Toast,于是打算在WPF上也来模仿一个,话不多说,撸起袖子干起来! 二.正文 1.首先新建一个工程,工程的目录如下 2.编 ...

  2. Android破解学习之路(五)——Android游戏 割绳子:魔法 + 在游戏加入Toast弹窗提示

    前言:这一期的破解教程,有新的知识内容出现啦! 这一期破解的游戏是找不到之前的关键字,怎么破解呢? 破解成功之后,添加一个Toast弹窗提示由XX破解,这操作该如何实现呢?请往下看~ 链接: http ...

  3. Qt 打开安卓相冊选择图片并获取图片的本地路径

    Qt 打开安卓相冊选择图片并获取图片的本地路径 过程例如以下: 通过 Intent 打开安卓的系统相冊. 推荐使用 QAndroidJniObject::getStaticObjectField 获取 ...

  4. JS仿Android Toast提示效果

    注:这个需要jquery文件来提示支持,所以需要先调用Jquery. <script type="text/javascript" src="js/jquery.j ...

  5. winform退出或关闭窗体时弹窗提示代码:转

    winform退出或关闭窗体时弹窗提示代码,当我们点击窗体的 X 按钮时,会弹出一个对话框,询问我们是直接退出,还是最小化到托盘,还是取消这个行为.或是是否保存当前修改等等.以下以最小化到托盘为例. ...

  6. artDialog 弹窗提示

    artDialog 弹窗提示,方便调用,不用去查文档了. /// <reference path="../../Scripts/artDialog5.0/artDialog.min.j ...

  7. php返回数组后处理(开户成功后弹窗提示)

    1. 在注册的时候,注册成功后经常会弹窗提示自己注册的信息,这类做法需要返回mysql数据库中获取的数组值,返回给前台页面,赋值给弹窗. 2.做法: 返回数组 打印的数组的值 返回数组处理 赋值给弹窗 ...

  8. 一款基于react-native的弹窗提示组件

    介绍一款基于react-native的弹窗提示插件 react-native-ms , github地址:https://github.com/jiangzhenfei/react-native-ms ...

  9. 关于webstorm打开项目,文件下方出现了一个小锁的图标,修改文件出现“cannot modify a ready-only directory”的弹窗提示

    今天用webstorm打开项目,文件下方出现了一个小锁的图标,修改文件出现“cannot modify a ready-only directory”的弹窗提示 解决办法:运行 sudo chown ...

  10. js 鼠标滚动到某屏时,加载那一屏的数据,仿京东首页楼层异步加载模式

    js用处:在做商城时,首页图片太多,严重影响首页打开速度,所以我们需要用到异步加载楼层.js名称:鼠标滚动到某屏时,加载那一屏的数据,仿京东首页楼层模式js解释:1.用于商城的楼层内容异步加载,滚动条 ...

随机推荐

  1. 第5讲、Transformer 编码器(Encoder)处理过程详解

    Transformer 编码器(Encoder)处理过程详解 Transformer Encoder 是一个由 N 层(一般为 6 层)堆叠而成的模块结构.每一层的本质是两个核心子模块: 多头自注意力 ...

  2. Java中XML相关

    XML的两种解析方式: 1.DOM解析:将标记语言一次性读入内存并在内存中生成一颗DOM树(适用于服务端) 优点:操作方便,可以对文档进行CURD操作 缺点:由于它是一次性全部读入内存的所以占用内存空 ...

  3. vivo Pulsar万亿级消息处理实践(1)-数据发送原理解析和性能调优

    作者:vivo 互联网大数据团队- Quan Limin 本文是vivo互联网大数据团队<vivo Pulsar万亿级消息处理实践>系列文章第1篇. 文章以Pulsar client模块中 ...

  4. HTML常见的标签---表单

    1 <table> 2 <tr> 3 <!-- name 一定要带上以后交互 --> 4 <td>用户名:</td> 5 <td> ...

  5. 《经验分享——在CSDN编写文章时如何实现空格、空行》

    经验分享--在CSDN编写文章时如何实现空格.空行 一.富文本编辑器: 1.空格: 按空格键 2.空行 先按Tab,再按回车键 二.Markdown编辑器: 1. 空格: 按空格键 2.空行: 输入& ...

  6. Spring Boot 启动优化实践

    作者:vivo 互联网服务器团队- Liu Di 本文系统性分析并优化了一个Spring Boot项目启动耗时高达 280 秒的问题.通过识别瓶颈.优化分库分表加载逻辑.异步初始化耗时任务等手段,最终 ...

  7. 18.Java源码分析系列笔记-JDK1.8的ConcurrentHashMap

    目录 1. 是什么 2. 如何使用 3. 原理分析 3.1. 构造方法 3.1.1. Node 3.2. put方法[有加锁] 3.2.1. 计算key的hash 3.2.2. 死循环 3.2.3. ...

  8. AI编程实战:云开发疯狂助攻,React + Vite 做出 FPS 网页游戏不是梦

    回想起最初接触云开发的那段时间,我出于练手的目的,开发了一款基于 HTML 的简易枪战游戏.当我满怀期待地将其展示给玩家时,没想到却被一句点评当场"点醒"了:这不就是打地鼠的升级版 ...

  9. 打造蓝牙音箱 OPENWRT && BLUETOOH && RTL8723.bs

    初步 文件准备 1.rtl8723.bs官方guide , 由于这个文件是别的公司的不知道保密性是怎么样的. 实在想要私信我 算了有空再上传吧. 2. RTL8761A_FineTune_Baudra ...

  10. openwrtPackage *** is missing dependencies for the following libraries: 解决方案

    参考文献 开源中国博客 你得在 staging_dir/target-arm_cortex-a7+neon_glibc-2.22_eabi/ 目录中确实找到你的哪一个库 如果找到了还报错了, 尝试 在 ...