QT 中如何实现一个简单的动画
2024-08-30 21:33:42
QT可以实现一下简单的动画,比如 运动的时钟 闪烁的按钮。
动画的实现:
(1)创建一个定时器
(2)调用QWidget::update()通知界面重绘
实现一个按钮闪烁的例子:
circlewidget.h
#ifndef CIRCLAWIDGET_H
#define CIRCLAWIDGET_H
#include <QFrame>
#include<QTimer>
class CircleWidget:public QFrame
{
Q_OBJECT
public:
CircleWidget(QWidget *parent);
~CircleWidget();
private:
void paintEvent(QPaintEvent *event);
void timerEvent(QTimerEvent *event);
private:
int m_timerId;
int m_times; }; #endif // CIRCLAWIDGET_H
circlewidgit.cpp
# include"circlewidget.h"
#include<QPainter>
CircleWidget::CircleWidget(QWidget *parent):QFrame(parent)
{
m_timerId=startTimer();
m_times=;
}
CircleWidget::~CircleWidget()
{ }
void CircleWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
int width=this->width();
int height=this->height();
painter.setPen(Qt::NoPen);
if(m_times==)
{
QBrush brush(QColor(0xFF,0xFF,0xFF));
painter.setBrush(brush);
m_times=;
}
else
{
QBrush brush(QColor(0x88,0x00,0xFF));
painter.setBrush(brush);
m_times=;
}
m_times++;
if(m_times==)
{
m_times=;
} painter.drawEllipse(,,,); }
void CircleWidget::timerEvent(QTimerEvent *event)
{ update(); }
最新文章
- error CS0117: `UnityEditor.EditorUtility&#39; does not contain a definition for `GetAssetPreview&#39;
- 使用json格式输出
- 三分钟掌握 JUnit3.0
- iOS自动布局之autoresizingi
- 使用Vagrant machine
- 随机数(random)
- CATransform3D参数的意义
- linux下的压缩解压命令 tar 的简单描述
- crawler_jsoup HTML解析器_使用选择器语法来查找元素
- Java Networking Related (Java Examples in a Nutshell 3rd Edition)
- vgrant使用简易教程
- [JSOI 2008]星球大战starwar
- [UOJ] #217. 【UNR #1】奇怪的线段树
- ScalaPB(0): 找寻合适的内部系统微服务集成工具
- mfc简单框架的分析和原理记录
- php中excel以及cvs等导入以及导出
- EasyPR源码剖析(6):车牌判断之LBP特征
- adb Android Debug Bridge 安卓调试桥
- tidb 架构 ~Tidb学习系列(2)
- jmeter操作数据库,分布式,在Linux上运行