标题:Qt编写自定义控件二动画按钮
作者:liudianwu
日期:2016-11-07 15:25
内容:
现在的web发展越来越快,很多流行的布局样式,都是从web开始的,写惯了Qt widgets 项目,很多时候想改进一下现有的人机交互,尤其是在现有的按钮上加一些动画的效果,例如鼠标移上去变大,移开还原。
Qt编写自定义控件还是非常方便和非常强大的,数量掌握Qpainter的各种绘制,自定义任意控件几乎都不是难题,只有想不到,没有做不到。
贴一张个人认为做的比较炫的UI界面:
如果工控项目的界面能够做到这种程序,应该可以让人眼前一亮。
运行效果图:
核心代码:
void AnimationButton::paintEvent(QPaintEvent *)
{
if (image.isEmpty()) {
return;
}
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
QPixmap pix(image);
pix = pix.scaled(targetWidth, targetHeight, Qt::KeepAspectRatio, Qt::SmoothTransformation);
if (enter || leave) {
int pixX = rect().center().x() - targetWidth / 2;
int pixY = rect().center().y() - targetHeight / 2 - 10;
QPoint point(pixX, pixY);
painter.drawPixmap(point, pix);
painter.drawText(QRectF(0, height() - 20, width(), 20), Qt::AlignCenter, text);
}
}
完整代码:
animationbutton.h
#ifndef ANIMATIONBUTTON_H
#define ANIMATIONBUTTON_H
/**
* 作者:feiyangqingyun(QQ:517216493) 2016-10-22
* 1:可设置显示的图像和底部的文字
*/
#include
..
#1 [圣域天子 11-07 15:52]
我以为第一张图是已经做出来的控件 。。。
#2 回 圣域天子 的帖子 [liudianwu 11-07 16:46]
圣域天子:
我以为第一张图是已经做出来的控件 。。。
应该毫无压力,近期疯狂搞自定义控件,接下来有空会用qt实现那个界面上的控件。
#3 [wzwdwjj 11-08 00:05]
一直想学习Qt自定义控件,但是系统教程比较少
楼主可以写一个专题博客,系统的讲解一下
#4 [clickto 11-08 08:33]
感觉做界面关键还是在美工啊!!!
#5 [boylebao 11-08 09:53]