Qt制作360安仔精灵
2014-05-26 17:27
169 查看
有两个QLabel, 一个显示静态图片, 一个显示动态图片, 相互切换显示 ..
![](https://img-blog.csdn.net/20140526172329156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcm9iZXJ0a3Vu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20140526172346906?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcm9iZXJ0a3Vu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
详细代码已上传 : http://download.csdn.net/detail/robertkun/7403735
#ifndef TESTCHICKEN_H #define TESTCHICKEN_H #include <QtWidgets/QDialog> #include "ui_testChicken.h" #include <QPoint> class QMovie; class testChicken : public QDialog { Q_OBJECT public: testChicken(QWidget *parent = 0); ~testChicken(); private slots: void OnTimerOut(); private: virtual void mousePressEvent( QMouseEvent* e); virtual void mouseMoveEvent( QMouseEvent* e); virtual void mouseReleaseEvent( QMouseEvent * e); bool CheckDragRegion(const QPoint &g_pos); private: Ui::testChickenClass ui; QMovie *movie; bool mbDragEnabled; QPoint mRelativePos; }; #endif // TESTCHICKEN_H
#include "testChicken.h" #include <QMovie> #include <QTimer> #include <QMouseEvent> testChicken::testChicken(QWidget *parent) : QDialog(parent) { ui.setupUi(this); mbDragEnabled = false; mRelativePos = QPoint(0,0); setWindowFlags(windowFlags() | Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground); QPixmap pixmap("AnZai.png"); ui.labImage->setPixmap(pixmap); movie = new QMovie("AnZai.gif"); ui.labAnimation->setMovie(movie); ui.labAnimation->hide(); QTimer* timer = new QTimer; timer->setInterval(3000); timer->start(); connect(timer, SIGNAL(timeout()), this, SLOT(OnTimerOut())); } testChicken::~testChicken() { } void testChicken::OnTimerOut() { if(movie->state() == QMovie::Running) { movie->stop(); ui.labAnimation->hide(); ui.labImage->show(); } else { movie->start(); ui.labAnimation->show(); ui.labImage->hide(); } } void testChicken::mousePressEvent( QMouseEvent* e ) { if(CheckDragRegion(e->globalPos())) { mbDragEnabled = true; mRelativePos= pos() - e->globalPos(); } } void testChicken::mouseMoveEvent( QMouseEvent* e ) { if(mbDragEnabled) { move(e->globalPos()+ mRelativePos); } } void testChicken::mouseReleaseEvent( QMouseEvent * e ) { if(mbDragEnabled) { mbDragEnabled = false; } } bool testChicken::CheckDragRegion( const QPoint &g_pos ) { QPoint pt = g_pos; QRect rcWnd = geometry(); //qDebug() << "pos: " << pt << "geometry: " << rcWnd; pt.setX(pt.x() - rcWnd.left()); pt.setY(pt.y() - rcWnd.top()); int nW = rcWnd.width(); int nH = rcWnd.height(); QRect rcDrag(0, 0, nW, nH); if(rcDrag.contains(pt)) { return true; } return false; }
详细代码已上传 : http://download.csdn.net/detail/robertkun/7403735
相关文章推荐
- Qt实现360桌面精灵
- QT学习(五)----360界面制作(2终结)
- QT 界面制作技巧汇总(持续更新)
- 用qt和seetaface制作人脸识别程序的准备工作备忘
- QT 登录界面制作
- QT程序在Windows下制作安装包发布程序的方法
- 如何制作具有声音效果的动画桌面精灵
- compass 制作精灵图
- Qt制作QQ好友列表
- qt phonon 制作音乐播放器实现歌词和遮罩功能
- 灵活使用精灵可视区域(TextureRect)与锚点(anchorPoint),并结合可视区域与锚点制作进度条!
- Socket的select制作多客户端传输(Qt)
- 【Cocos2D-X 游戏引擎】初窥门径(1) 制作一个动态的精灵
- (4)qt5制作简易计算器详细步骤(ui界面)
- Qt Style Sheets制作UI特效
- qt5.1+ vs2013+opencv2.4.8制作第一个图形界面
- 自己动手制作QPF字体,让QT程序看起来不是那么僵硬
- Qt加载网页(加载浏览器插件)和制作托盘后台运行(南信大财务报账看号)
- 使用Qt installer framework制作安装包
- 005_HTML制作炫酷登录界面(CSS精灵图、背景图片局部显示)