Label,PushButton,ToolButton 实现动态图片按钮,Label显示gif动画
2013-08-21 10:05
741 查看
.h文件
public:
.cpp文件
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);
}
相关文章推荐
- Java之简单的图片动态显示(实现类似GIF动画效果)
- java实现gif动画效果(java显示动态图片)
- Java之简单的图片动态显示(实现类似GIF动画结果)
- java实现gif动画效果(java显示动态图片)
- jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
- 【代码】PHP 生成GIF动画实现动态图片验证码
- jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
- 实现动态的GIF 图片显示到窗体中
- windform 加载动画 ,显示gif动态图片(懒人推荐)
- C/C++实现显示GIF动态图片
- Flex :自定义Loading载入状态(含图标) 及解决Flex中GIF动画图片加载时显示动起来
- 动态gif图片在html中显示拖影
- VC++实现输出GIF到窗体并显示GIF动画的方法
- 仿QQ好友动态添加说说、图片菜单滑动移进移出效果--在指定控件下面显示popupwindow动画不移效果
- android studio中使用android-gif-drawable开源项目实现gif图片的显示
- 博计报表动态显示图片实现预警
- 使用定时器显示GIF动画的ATL控件实现
- binbinyyang---Android实现显示GIF图片
- 实现在有限的label上动态的显示所有文字
- 实现动态加载的图片页面中纵向居中显示