有两个QLabel, 一个显示静态图片, 一个显示动态图片, 相互切换显示 ..

[cpp] view plaincopy
  1. #ifndef TESTCHICKEN_H
  2. #define TESTCHICKEN_H
  3. #include <QtWidgets/QDialog>
  4. #include "ui_testChicken.h"
  5. #include <QPoint>
  6. class QMovie;
  7. class testChicken : public QDialog
  8. {
  9. Q_OBJECT
  10. public:
  11. testChicken(QWidget *parent = 0);
  12. ~testChicken();
  13. private slots:
  14. void OnTimerOut();
  15. private:
  16. virtual void mousePressEvent( QMouseEvent* e);
  17. virtual void mouseMoveEvent( QMouseEvent* e);
  18. virtual void mouseReleaseEvent( QMouseEvent * e);
  19. bool CheckDragRegion(const QPoint &g_pos);
  20. private:
  21. Ui::testChickenClass ui;
  22. QMovie *movie;
  23. bool mbDragEnabled;
  24. QPoint mRelativePos;
  25. };
  26. #endif // TESTCHICKEN_H
[cpp] view plaincopy
  1. #include "testChicken.h"
  2. #include <QMovie>
  3. #include <QTimer>
  4. #include <QMouseEvent>
  5. testChicken::testChicken(QWidget *parent)
  6. : QDialog(parent)
  7. {
  8. ui.setupUi(this);
  9. mbDragEnabled = false;
  10. mRelativePos = QPoint(0,0);
  11. setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
  12. setAttribute(Qt::WA_TranslucentBackground);
  13. QPixmap pixmap("AnZai.png");
  14. ui.labImage->setPixmap(pixmap);
  15. movie = new QMovie("AnZai.gif");
  16. ui.labAnimation->setMovie(movie);
  17. ui.labAnimation->hide();
  18. QTimer* timer = new QTimer;
  19. timer->setInterval(3000);
  20. timer->start();
  21. connect(timer, SIGNAL(timeout()), this, SLOT(OnTimerOut()));
  22. }
  23. testChicken::~testChicken()
  24. {
  25. }
  26. void testChicken::OnTimerOut()
  27. {
  28. if(movie->state() == QMovie::Running) {
  29. movie->stop();
  30. ui.labAnimation->hide();
  31. ui.labImage->show();
  32. }
  33. else {
  34. movie->start();
  35. ui.labAnimation->show();
  36. ui.labImage->hide();
  37. }
  38. }
  39. void testChicken::mousePressEvent( QMouseEvent* e )
  40. {
  41. if(CheckDragRegion(e->globalPos())) {
  42. mbDragEnabled = true;
  43. mRelativePos= pos() - e->globalPos();
  44. }
  45. }
  46. void testChicken::mouseMoveEvent( QMouseEvent* e )
  47. {
  48. if(mbDragEnabled) {
  49. move(e->globalPos()+ mRelativePos);
  50. }
  51. }
  52. void testChicken::mouseReleaseEvent( QMouseEvent * e )
  53. {
  54. if(mbDragEnabled) {
  55. mbDragEnabled = false;
  56. }
  57. }
  58. bool testChicken::CheckDragRegion( const QPoint &g_pos )
  59. {
  60. QPoint pt = g_pos;
  61. QRect rcWnd = geometry();
  62. //qDebug() << "pos: " << pt << "geometry: " << rcWnd;
  63. pt.setX(pt.x() - rcWnd.left());
  64. pt.setY(pt.y() - rcWnd.top());
  65. int nW = rcWnd.width();
  66. int nH = rcWnd.height();
  67. QRect rcDrag(0, 0, nW, nH);
  68. if(rcDrag.contains(pt)) {
  69. return true;
  70. }
  71. return false;
  72. }

原文链接:http://blog.csdn.net/robertkun/article/details/27096677

Qt实现360桌面精灵相关推荐

  1. vs+qt实现简单桌面精灵

    开篇先放成果(桌面精灵用的图片皆为网上的图片,后准备自己做一下) 可以实现获取在桌面的位置,产生相应的变化,比如用鼠标将他拖到电脑屏幕边缘,会吸附到电脑边缘(其实就是换了一张图片,对窗口进行一些操作, ...

  2. QT之桌面精灵实现(一) --- 透明窗体和图片绘制

    关于QT种种,之前已经吐槽过了,打算写几篇记录一下桌面精灵的制作过程,不过由于是过了挺长时间才想要写,所以之前的一些东西都忘得差不多了,总之想起多少写多少. 桌面精灵的第一步,就是要把一个精灵渲染到桌 ...

  3. PyQt5桌面应用开发(11):摸鱼也要讲基本法之桌面精灵

    本文目录 PyQt5桌面应用系列 鼠标不要钱,手腕还不要钱吗? PyQt5源程序 python文件 资源定义 界面定义文件 技术要素 资源文件 StyleSheets QMainWindow设置 窗体 ...

  4. Qt Creator在桌面上预览

    Qt Creator在桌面上预览 在桌面上预览 在桌面上预览 要在桌面上预览当前活动的QML文件,请执行以下操作: 选择"构建" >" QML预览". 选 ...

  5. 360桌面计算机,360桌面管理软件

    360桌面管理是从360安全卫士中单独提取出来,让你无需安装360安全卫士就能快速使用桌面助手整理自己的桌面. [功能特色] 1.一键整理桌面,眨眼之间变清爽 360桌面助手采用收纳盒进行分类管理,支 ...

  6. JAVA桌面精灵演示版

    近来闲的慌,看见C#或C++写的桌面精灵是不是心理痒痒,JAVA能写不?在我这里回答是:能 当然程序还有点bug,背景处理有问题,这个和系统的刷新率有关....以后再研究... 没啥特别的功能,就是隐 ...

  7. 怎样使用计算机的桌面助手,360桌面助手怎么用

    360桌面助手是电脑端应用,通过它可以快速的打开一些电脑常用应用,并且能够有效的整理电脑桌面,那么它具体如何使用呢?下面小编介绍它最主要的几款功能. 操作方法 01首先也是最主要的功能就是整理电脑桌面 ...

  8. 桌面计算机1008桌面计算机,windows桌面精灵

    windows桌面精灵是一款鼠标键盘动作录制工具,可以自动录制和自定义录制. 功能特色: 一键智能录制键盘鼠标动作 一次智能录制键盘鼠标动作,让桌面精灵为您卖力的重复这这些枯燥的重复操作吧. 超简单自 ...

  9. 360桌面助手待办事项同步/迁移的方法(从一台电脑迁移到另外一台电脑上)

    自己的电脑升级,需要把各种数据迁移过来,最难办的是迁移 各种软件的配置,数据信息,例如搜狗输入法用户词库等.这个搜狗输入法提供了导出词库,再导入的功能.360的桌面助手很好用,作者添加了很多待办事项, ...

最新文章

  1. Map集合的几种遍历方式
  2. DataScience:深入探讨与分析机器学习中的数据处理之线性变换—标准化standardization、归一化Normalization/比例化Scaling的区别与联系
  3. GridView 自写分页 存储过程
  4. OpenGL基于PBR的图像的光照IBL的实例
  5. PL/SQL Developer下设置“长SQL自己主动换行”
  6. MATLAB程序详细解析,遗传算法——matlab代码解析
  7. java thread 输出结果_大神来看看这段程序输出结果是什么?
  8. memcached—Java操作Memcached
  9. 【正点原子MP157连载】第二章 ATK-STM32MP157烧写系统-摘自【正点原子】STM32MP157快速体验
  10. Android P wakeup 亮屏流程
  11. python ttk.notebook_python – 删除Ttk Notebook标签虚线
  12. 发布《IBM虚拟机J9指南》
  13. ubuntu12.04 快捷键
  14. 手札 江湖的完美窗口化研究
  15. 业务数据分析-常见业务指标
  16. 游戏后台之内存管理篇
  17. windows如何使用本机电脑远程桌面连接另一台电脑
  18. 在win7中要修改计算机的虚拟内存,Win7虚拟内存要设置?
  19. 使用极限学习机进行股市预测(Matlab代码实现)
  20. word图片批量添加题注(序号)的方法

热门文章

  1. 经验分享——营销活动之拼团活动创建教程
  2. FTP详解及模拟实现一个vsftpd服务器
  3. python tkinter+ socket 实现 域名查询
  4. 永磁同步电机电位器调速及数码管实时显示
  5. S7-1200和S7-1500支持哪些错误处理OB
  6. 【对讲机的那点事】三招教你如何选购对讲机
  7. 王川:一年读五百本书,让你每天高潮迭起
  8. 突发!大连理工大学研三学生自杀,遗书曝光,研究生的压力应该谁来化解?...
  9. 海康威视录像机的远程访问问题
  10. python身份证号码解析编程_[宜配屋]听图阁