找回密码
 立即注册
收起左侧

Qt编写自定义控件二动画按钮

21
回复
8101
查看
[复制链接]
累计签到:7 天
连续签到:1 天
来源: 2016-11-7 15:40:04 显示全部楼层 |阅读模式
    现在的web发展越来越快,很多流行的布局样式,都是从web开始的,写惯了Qt widgets 项目,很多时候想改进一下现有的人机交互,尤其是在现有的按钮上加一些动画的效果,例如鼠标移上去变大,移开还原。
    Qt编写自定义控件还是非常方便和非常强大的,数量掌握Qpainter的各种绘制,自定义任意控件几乎都不是难题,只有想不到,没有做不到。
贴一张个人认为做的比较炫的UI界面:
如果工控项目的界面能够做到这种程序,应该可以让人眼前一亮。
运行效果图:
核心代码:
  1. void AnimationButton::paintEvent(QPaintEvent *)
  2. {
  3.     if (image.isEmpty()) {
  4.         return;
  5.     }

  6.     QPainter painter(this);
  7.     painter.setRenderHint(QPainter::Antialiasing);

  8.     QPixmap pix(image);
  9.     pix = pix.scaled(targetWidth, targetHeight, Qt::KeepAspectRatio, Qt::SmoothTransformation);

  10.     if (enter || leave) {
  11.         int pixX = rect().center().x() - targetWidth / 2;
  12.         int pixY = rect().center().y() - targetHeight / 2 - 10;
  13.         QPoint point(pixX, pixY);
  14.         painter.drawPixmap(point, pix);
  15.         painter.drawText(QRectF(0, height() - 20, width(), 20), Qt::AlignCenter, text);
  16.     }
  17. }
复制代码
完整源码下载:
此自定义控件集成在QFramework中。
自定义控件可执行文件下载:http://pan.baidu.com/s/1i5iCfzv
QFramework简介:
QFramework是一套通用的Qt程序开发框架,集成主界面布局、各种自定义控件、数据库处理、excel极速导出、数据打印、串口通信、网络通信、协议解析、全局热键、邮件发送,短信发送,百度地图调用、ffmpeg+vlc处理等功能,将常用的功能封装成类库,提供统一直观的调用接口,方便使用者使用,对应封装的库都有对应的demo程序。
QFramework基本功能:
1:支持从4.7.0到5.7.0的任何Qt版本,不受版本限制。用了此框架,不会再有Qt版本不同而引起的程序编译通不过的烦恼。
2:极速导出数据到excel,支持表格数据或者查询的数据,不依赖任何组件,支持任何excel、wps等表格软件版本,导出10万行数据8个字段只需要3秒完成。对导出的表格样式可自定义主标题和副标题,可对导出的数据按照指定条件红色突出显示。
3:数据导出到pdf及打印功能,支持表格数据或者查询的数据,支持横向纵向打印,自动分页。
4:数据分页dbapi类,只需传入表格对象,表名,翻页按钮即可。无需再写重复的方法处理翻页。
5:各种自定义控件,例如开关按钮、发光按钮,仪表盘控件、音量控件、温湿度控件、仪表仪器类控件等。
6:全新超级中英双拼输入法,非常适合触摸设备。
7:全局热键处理。
8:串口热敏打印机打印。
9:qcustomplot 2D图形曲线绘制(含鼠标数据跟踪)。
10:多线程邮件发送,支持多个接收邮箱。
11:多线程短信发送,支持多个接收号码及长短信。
12:Qffmpeg+Qvlc视频处理。
13:取字模,字符转LED数据处理。
14:全局日志输出类 applog,可动态挂载和卸载。
15:全局程序控制类 a**ey,可控制程序的使用时间、运行时间、设备数量限制等。
16:封装百度地图调用接口,支持设备标注、路线查询、位置显示等。
17:自动清理程序早期数据类 cleanapi,传入要清理的数据库表名,执行间隔,保留的最大记录数即可。这样保证了整个系统存储的都是最新的数据。
18:NTP校时服务程序。
19:全局截图处理,可以很方便的直接在ARM上对程序进行截图。
20:程序存活检测功能 applive,通过udp通信实时发送心跳命令,这样可以保证程序7*24小时运行,在ARM上可采用appdog看门狗程序。
21:已运行时间+当前时间+实时CPU使用率+实时内存使用率等。
22:自定义程序主界面底部信息。
23:Echart图表的交互使用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
阿里云
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-11-8 11:07:33 显示全部楼层
楼主可执行文件和第一张附件的源码能不能卖我一份,支付宝微信转账。
回复 支持 反对

使用道具 举报

累计签到:441 天
连续签到:2 天
2016-11-10 10:11:57 显示全部楼层
谢谢楼主分享。。。。
回复 支持 反对

使用道具 举报

累计签到:145 天
连续签到:1 天
2016-11-11 09:02:23 显示全部楼层
学习学习!谢谢分享!
回复 支持 反对

使用道具 举报

累计签到:86 天
连续签到:1 天
2016-11-11 15:53:51 显示全部楼层
谢谢楼主分享,楼主真是太强了
回复 支持 反对

使用道具 举报

累计签到:7 天
连续签到:1 天
2016-11-14 21:21:51 显示全部楼层
用qt可以做出非常多漂亮的自定义控件






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:7 天
连续签到:1 天
2016-11-14 21:22:31 显示全部楼层




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-11-22 09:51:38 显示全部楼层
都是高手呀,太厉害了
回复 支持 反对

使用道具 举报

累计签到:20 天
连续签到:1 天
2016-11-29 11:21:58 显示全部楼层
牛人, word 哥
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-2-15 22:25:20 显示全部楼层
楼主真的牛逼啊,新手,谢谢。
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2017-9-14 15:36:19 显示全部楼层
很漂亮,要是自己能写出来就厉害了
回复 支持 反对

使用道具 举报

累计签到:31 天
连续签到:1 天
2017-10-24 21:49:03 显示全部楼层
这个真的很漂亮,谢谢大牛分享
回复 支持 反对

使用道具 举报

累计签到:20 天
连续签到:1 天
2017-10-30 10:24:58 显示全部楼层
厉害,看来还是得好好学习
回复 支持 反对

使用道具 举报

累计签到:12 天
连续签到:1 天
2017-10-30 22:37:22 显示全部楼层
望尘莫及,赞!!赞!赞!
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2017-11-17 09:27:04 显示全部楼层
大神,请受我一拜,收藏了。
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2017-12-10 13:12:33 显示全部楼层

楼主真的牛逼啊,新手,谢谢。
回复 支持 反对

使用道具 举报

累计签到:12 天
连续签到:1 天
2018-1-3 17:42:51 显示全部楼层
谢谢楼主!好人一生平安
回复 支持 反对

使用道具 举报

尚未签到

2018-1-25 14:19:10 显示全部楼层
不错,可以没有开源,可以参考
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2018-2-27 11:57:25 显示全部楼层
这也太完美了。。我们来学些
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2018-3-23 14:12:16 显示全部楼层
谢谢楼主,下来学习。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册