Label,PushButton,ToolButton 实现动态图片按钮,Label显示gif动画
.h文件
public:
explicit event(QWidget *parent = 0);
~event();
QImage image;
QLabel *label;
QLabel *label2;
QPixmap p2;
QPalette pl;
QIcon icon;
QToolButton *btn;
QPushButton *pb;
public slots:
bool eventFilter(QObject*,QEvent*);
.cpp文件
image.load(":/images/x.png");
p2.load(":/images/xx.png");
label = new QLabel(this);
label->setPixmap(QPixmap::fromImage(image));
pb = new QPushButton(this);
pb->setFlat(true);//去边框
icon.addPixmap(p2);
pb->setIcon(icon);//设置背景
pb->setIconSize(p2.size());
/* *********另一种设置背景******
pb->setObjectName("pb");//使以下的作用域只作用于pb
pb->setStyleSheet("QPushButton#pb{border-image:url(:/images/1.png)}QPushButton::pressed#pb{border-image:url(:/images/100.png)}");
*/
btn = new QToolButton (this);
btn->setText("test");
btn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);//文字与图片下方显示
btn->setIcon(p2);
btn->setAutoRaise(true);//去边框
btn->setIconSize(p2.size());
QGridLayout *lay = new QGridLayout(this);
lay->addWidget(label,0,0);
lay->addWidget(btn,1,1);
lay->addWidget(pb,2,2);
lay->setMargin(10);
/*************控件安装过滤器***********/
label->installEventFilter(this);
pb->installEventFilter(this);
btn->installEventFilter(this);
/*************显示GIF动画****************/
label2= new QLabel(this);
label2->setGeometry(350,50,150,213);
QMovie *movie = new QMovie(":/images/32.gif");
label2->setMovie(movie);
movie->start();
}
bool event::eventFilter(QObject*w,QEvent*e)
{
if(w == label)
{
if(e->type() == QEvent::MouseButtonPress)
{
QMatrix ma;
ma.scale(0.5,0.5);
QImage im = image.transformed(ma);
label->setPixmap(QPixmap::fromImage(im));
}
if(e->type() == QEvent::MouseButtonRelease)
{
label->setPixmap(QPixmap::fromImage(image));
}
}
if(w == btn)
{
if(e->type() == QEvent::MouseButtonPress)
{
QMatrix ma;
ma.scale(0.8,0.8);
QPixmap px = p2.transformed(ma);
icon.addPixmap(px);
btn->setIcon(px);
}
if(e->type() == QEvent::MouseButtonRelease)
{
btn->setIcon(p2);
}
}
if(w ==pb)
{
if(e->type() == QEvent::MouseButtonPress)
{
QMatrix ma;
ma.scale(0.8,0.8);
QPixmap px = p2.transformed(ma);
icon.addPixmap(px);
pb->setIcon(px);
}
if(e->type() == QEvent::MouseButtonRelease)
{
pb->setIcon(p2);
}
}
return QDialog::eventFilter(w,e);
}
Label,PushButton,ToolButton 实现动态图片按钮,Label显示gif动画的更多相关文章
- 01-实现图片按钮的缩放、动画效果(block的初步应用)
#import "ViewController.h" #define kDelta 60 @interface ViewController () @end @implementa ...
- Egret动态设置按钮的图片
参考: 动态设置Button按钮的状态图片 按钮有3个状态,up down disabled.这里区别于source,source.down,source.disabled,而是每个状态单独一个ima ...
- iOS系列 基础篇 06 标签和按钮 (Label & Button)
iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single Vi ...
- salesforce 零基础学习(三十四)动态的Custom Label
custom label在项目中经常用到,常用在apex class或者VF里面用来显示help text或者error message.有的时候我们需要用到的信息是动态变化的,那样就需要动态来显示信 ...
- 自动计算label字体的高度和图片拉伸处理(封装成分类分享)
自动计算label字体的高度和图片拉伸处理 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bo ...
- 用图片作为label,for属性IE下不起作用
IE浏览器存在一个BUG,当你使用label的for属性达到点击label使对应的表单元素聚焦,label中的内容为图片时,IE浏览器下不起作用. 例如: <input type="c ...
- atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js
atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js 1. 图片按钮的效果总结 1 1.1. 按钮图片自动缩放的. 1 1.2. 不要 ...
- python tkinter动态追加按钮等控件可能遇到的问题
小爬最近给同事制作一个小爬虫:具体要求: 1.每天自动定时触发: 2.模拟用户自动登陆: 3.自动爬取对应API接口数据: 4.对爬取结果进行逻辑判断,对符合条件的数据进行规则化列示: 5.列示的行项 ...
- winfrom播放动态图片
winfrom是不能直接加载的动态图片的.只能够自己写方法实现. 具体代码如下: using System; using System.Collections.Generic; using Syste ...
随机推荐
- Hadoop安装和使用
1.安装 1.1.下载hadoop-2.5.1.tar.gz 1.2.解压至安装目录 tar -zxv -f hadoop-2.5.1.tar.gz -C ../soft/ 1.3.配置hadoop相 ...
- C# 常用字符串加密解密方法
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Sec ...
- linux采用scp命令拷贝文件到本地,拷贝本地文件到远程服务器
// 假设远程服务器IP地址为 192.168.1.100 1.从服务器复制文件到本地: scp root@192.168.1.100:/data/test.txt /home/myfile/ roo ...
- Python中的全局变量与局部变量的区别
全局变量与局部变量两者的本质区别就是在于作用域 用通俗的话来理解的话, 全局变量是在整个py文件中声明,全局范围内都可以访问 局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地 ...
- jQuery(基础dom及css操作)
设置元素内容 元素属性操作 ---------- 元素样式操作 ---------------- 对象数组的遍历 测试代码: $(function () { var v=$('div').css([' ...
- selenium+java启动chrome浏览器
- (2)Spring Boot返回json数据【从零开始学Spring Boot】
在做如下操作之前,我们对之前的Hello进行简单的修改,我们新建一个包com.kfit.test.web 然后新建一个类HelloControoler, 然后修改App.java类,主要是的这个类就是 ...
- spring中的单例和多例
单例 对象在整个系统中只有一份,所有的请求都用一个对象来处理,如service和dao层的对象一般是单例的. 为什么使用单例:因为没有必要每个请求都新建一个对象的时候,浪费CPU和内存. 多例 对象在 ...
- [Beginning SharePoint Designer 2010]Chapter5 主题和样式
本章概要: 1.什么是CSS 2.样式表的组成 3.如何管理CSS适应SPD的工具和特性 4.被SPS使用的关键的CSS类别 5.使用SPD应用样式到你的站点上
- 程序猿的量化交易之路(18)--Cointrader之Event实体(6)
转载需注明: 事件,是Esper的重要概念. 这里我们定义个事件类.它是Temporal实体的派生类. 不过对Temporal简单的包装.其代码例如以下: package org.cryptocoin ...