Giter Site home page Giter Site logo

qt-showywidgets's Introduction

花里胡哨控件集合

个人开发的几个比较有意思的控件的集合。

互动按钮

仓库地址:InteractiveButtons

带有超强交互动画的按钮,可轻松扩展,下面很多控件都是基于它

  • 所有颜色自定义
  • 鼠标悬浮渐变
  • 两种点击效果:鼠标点击渐变 / 水波纹动画(可多层波纹叠加)
  • 额外鼠标移入/移出/按下/弹起的实时/延迟共8种事件
  • 鼠标悬浮图标位置主动变化
  • 鼠标拖动图标抖动反弹效果
  • 鼠标进入父控件时开启出现效果,或启动时出现
  • 延迟出现的动画效果(多个按钮连续)
  • 记录开关状态
  • 直接设置边框、圆角显示
  • 禁用时半透明+点击穿透效果
  • 添加额外的边缘角标
  • 三种前景模式:图标、文字、带遮罩的图标(任意变色)
  • 支持QSS直接设置部分属性
  • 与父类 QPushButton 兼容
  • 时间准确性:根据时间戳计算动画进度,即使在低性能机器上也可准时完成动画
  • 一按钮多功能,稳定兼容多种情况下焦点事件
  • 极其强大的可扩展性,继承该按钮后可任意修改显示效果和动画效果

可交互的创意动态按钮

猫咪按钮

菜单

仓库地址:FacileMenu

非常简单易用、优雅美观的菜单,每一处都带有动画,连分割线都不放过

无限层级,响应键盘、鼠标单独操作,支持单快捷键。

允许添加自定义 action、widget、layout,当做特殊的 QDialog 使用。

飘逸的菜单

超简单使用方法:

FacileMenu* menu = new FacileMenu(this);
menu->addAction("开始播放 (&S)", [=]{
    /* 添加动作菜单项 */
})->disable(!playing);
menu->exec();

趣味开关

仓库地址:SapidSwitch

  • 全局非线性动画、支持手势拖拽
  • 爱心形状的switch开关,支持手势拖动、按压效果
  • 线条样式的3种开关

趣味开关

动画多选框

仓库地址:AniCheckBox

一个带切换动画的 CheckBox,没有其他特殊效果

CheckBox

轮播图

仓库地址:SlideShow

懒得取名的只为了好看的轮播图。

  • 左右轮播(废话)
  • 鼠标悬浮切换,无需点击
  • 自动定时轮播
  • 自动裁剪和缩放不同尺寸图片
  • 任意添加、插入、删除
  • 单击事件,支持索引和自定义文本
  • 界面美观,圆角、阴影、卡片内偏移、非线性并行动画、渐变切换等

在图片切换的同时,每张图片内部还有一丝丝的“漂移”效果。除了带来灵活的视觉效果外,还使得左右缩略图露出的部分可以很好的显示偏向中心的内容

另外,在两图交替的那一瞬间,采用了很微妙的渐变消失特效,从而不会产生瞬间变换的闪屏感觉,这是其它轮播图都未能做到的。

轮播图

折线图

仓库地址:LineChart

带动画、带交互的折线图:

  1. 动态增删数值
  2. 自适应显示坐标轴数值
  3. 鼠标悬浮显示十字对准线
  4. 鼠标靠近点自动贴附
  5. 支持直线与二次/三次贝塞尔曲线效果
  6. 自定义点的显示类型与大小
  7. 自适应点的数值显示位置
  8. 根据指定锚点缩放
  9. 平滑的横向移动
  10. 选中的纵向渐变效果

折线图

果冻滚动条

仓库地址:SlimScrollBar

可以像弓弦一样拉出来,并且来回弹动的普通滚动条。

果冻条

支持设置到任意垂直滚动条上,超简单使用方法:

widget->setVerticalScrossbar(new SlimScrollBar(widget->parentWidget()));

会逃跑的按钮

仓库地址:EscapeDialog

会逃跑的按钮

按钮三剑客

奶酪被拉出来的粘性效果(但其实更像果冻)

仓库地址:JellyButtonBox

果冻按钮

标签输入框

仓库地址:LabeledEdit

带有标签动画、焦点动画、正确提示、错误警告的单行输入框控件。

  • 全局非线性动画
  • Label每个字符的动画先后、动画距离都不一样
  • 正确动画中,勾原先的弹动横线长度 = 圆弧弧长 = 显示一部分勾的弧长+一部分勾长 = 勾的右线条长
  • 错误动画带有延迟,更像波浪从右往左传播
  • 字符就算在动画中都可以实时编辑

标签输入框

注册动画

当前写作天下中的注册动画,使用了本集合中的多种控件:

注册动画

画廊

仓库地址:GalleryWidget

  • 跟随窗口大小变换位置,并带移动动画
  • 响应鼠标事件,图片缩放动画
  • 点击水波纹动画
  • 按钮部分引用本人另一个控件:Qt-InteractiveButton

画廊

可拖拽标签组

仓库地址:DragableTabWidget

模仿VSCode的可任意拖拽的Tab标签组

  • 拖拽标签页至新窗口
  • 拖拽标签页合并控件
  • 无限嵌套的横纵分割布局(类似Qt Creator的编辑框)
  • 获取当前使用的标签组、标签页
  • 自动向上合并标签组
  • 左右拖拽排序

可拖拽标签组

可交互验证码

仓库地址:RandomVerification

  • 字符变换动画
  • 噪音点、噪音线条动画
  • 可拖动字符,验证码跟着变

可交互验证码

时间轴

仓库地址:TimelineWidget

多列时间轴控件,可与字符串格式自由转换。

  • 时间背包功能:记录所有物品或属性发生的变化,随时回溯
  • 时间可输入任意内容,不限于时间
  • 每一时间段允许多列,即多个文字节点
  • 全自动调整节点大小(宽高),尽量看起来舒服
  • 行与行、列与列 之间任意拖拽更换顺序
  • 可与文字自由转换,默认一段为一个文字节点
  • 方便的多行操作
  • 按需修改快捷键
  • 所有编辑可撤销
  • 美观的调整动画

时间轴

指示箭头

仓库地址:InterestingIndicate

指示箭头

贝塞尔波浪

仓库地址:Bezier-Wave

贝塞尔波浪

微动背景

仓库地址:Dynamic-Background

随着时间、空间,色彩以难以察觉的速度缓慢变化。

虽然是动态,但是慢到难以发觉,最适合大段文字的长期阅读与写作。

微动背景

窗口内通知

仓库地址:Notification-Manager-V2

仿Windows通知,多个通知显示,定时消失,支持出现/消失动画。

两种使用方式:

  • 局部通知,通过信号槽和 Lambda 直接获取通知的操作方式
  • 全部通知,触发信号给其他控件使用

另外支持卡片本身、附加三个按钮的点击事件。

窗口内通知

qt-showywidgets's People

Contributors

iwxyi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qt-showywidgets's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.