主要使用的是定时器
新建一个Widget,在头文件widget.h中添加定时器的声明
在设计界面添加l两个lable,一个lable添加一个蝴蝶张开翅膀的图片,另一个lable添加一个蝴蝶合上翅膀的图片,要保证两个lable和两个图片的大小是一样的,这样最终的效果才是最好的
然后在widget.cpp源文件中进行定时器的设置和定时函数的重构
这里要想实现图片的间隔切换和移动,要设置两个定时器,一个用来控制图片显示,另一个用来控制图片的额坐标移动。
看下面运行视频
通过Qt实现“蝴蝶飞”
这里通过定时器实现“蝴蝶的飞舞”主要使用的是定时器1、过程新建一个Widget,在头文件widget.h中添加定时器的声明在设计界面添加l两个lable,一个lable添加一个蝴蝶张开翅膀的图片,另一个lable添加一个蝴蝶合上翅膀的图片,要保证两个lable和两个图片的大小是一样的,这样最终的效果才是最好的然后在widget.cpp源文件中进行定时器的设置和定时函数的重构这里要想实现图片的间隔切换和移动,要设置两个定时器,一个用来控制图片显示,另一个用来控制图片的额坐标移动。2、.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
文章目录
QT
imer类
实现
定时器
第一步第二步第三步第四步QObject中的
定时器
第一步第二步第三步
定时器
的使用场景很多,例如2D绘图类的游戏开发中,可以用来进行界面的重绘刷新、人物动作帧切换等,还可以
实现
项目中时
间
的实时更新。
Qt
中的
定时器
有两种
实现
方式:1)
QT
imer类 2)QObject中的
定时器
由于
QT
imer类使用时不能支持多个
定时器
同时使用,因此一般使用第二种方式
QT
imer类
实现
定时器
定时器
对象在超时后会发出timeout()信号,需要建立
定时器
类对象以及超时信号和对应槽函数
1.QPen :画图形的”笔“,即图形的边框,可以设定其颜色,宽度等
2.QBrush :调色板,决定边框里面的颜色,可以设定颜色,风格等
3.QFont :文本格式,可以设定字体(如宋体),颜色,粗细等
4.QPixmap :绘制
图片
5.通过painter.save()与painter.restor
本文实例为大家分享了
Qt
通过
图片
组绘制动态
图片
的具体代码,供大家参考,具体内容如下
任务
实现
:
通过
定时器
的使用来依次调用资源文件中的静态
图片
文件,从而达到是
图片
中内容动起来的效果;
效果
实现
:
实现
过程:
1.通过paintEvent()函数进行每一张
图片
的导入平铺绘制;
2.通过timerEvent()函数对每一张
图片
按照设定的时
间
进行重复的调用,从而达到动图的效果;
3.通过自定义InitPixmap()函数来对每一张
图片
进行初始化,将其导入到Pixmap[ 64 ]组中;
整体代码:
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#inclu
Qt
中有两种方法来使用
定时器
,一种是
定时器
事件,另一种是使用信号和槽。一般使用了多个
定时器
时最好使用
定时器
事件来处理。
1.新建
Qt
Gui应用,项目名称为myTimer,基类选择QWidget,类名为Widget。
2.到widget.h文件中添加函数声明:
protected:
void timerEvent(
QT
imerEvent *);
然后添加私有变量定义:
int id1, id2, id3;
3.下面到设计模式,向界面上拖入两个标签部件Label。
4.下面进入widget
上图用QLabel可以显示gif,这里主要用到了QMovie类的一些方法,
实现
起来也很简单,
在头文件声明QMovie对象,注意要包含头文件 #include <QMovie>,代码如下:
#ifndef DIALOG_H
#define DIALOG_H
#inc...
1. 创建一个QLabel控件,并将要拖拽的
图片
设置为其背景。
2. 重写QLabel的mousePressEvent()方法,当鼠标左键按下时,创建一个QDrag对象,并将其mimeData()设置为要拖拽的数据。
3. 调用QDrag的exec()方法,开始拖拽操作。
以下是示例代码:
```cpp
void MyLabel::mousePressEvent(QMouseEvent *event)
if (event->button() ==
Qt
::LeftButton) {
QDrag *drag = new QDrag(this);
QMimeData *mimeData = new QMimeData;
mimeData->setImageData(image); // 设置要拖拽的
图片
数据
drag->setMimeData(mimeData);
drag->setPixmap(image.scaled(100, 100)); // 设置拖拽时显示的
图片
drag->exec();
其中,image为要拖拽的
图片
数据。在拖拽时,会显示一个缩放后的100x100大小的
图片
。