Qt实现窗体在显示屏旁边自动隐藏(类似QQ)

看群里有人问这个东西,本人闲来无事便依照自己的想法实现了下:


其实实现的点子很简单:

void AutoHideWidget::leaveEvent(QEvent *event)
{isAutoHide();if (m_bIsAutoHide){hideWidget();}
}void AutoHideWidget::enterEvent(QEvent *event)
{if (m_bIsAutoHide){showWidget();}
}

在鼠标离开窗体的时候去判断窗体是否满足自动隐藏的条件,以及自动隐藏的方向,如果满足则自动隐藏,否则不操作。
鼠标再次进入窗体的时候,判断是否自动隐藏,隐藏则自动显示出来。

重点:


其实窗体隐藏后还是有很小的一部分显示的,因为就是依靠这点显示区感应鼠标再次进入的事件。

眼里的隐藏和显示

看看代码大家就很清楚了

void AutoHideWidget::hideWidget()
{QPropertyAnimation *animation = new QPropertyAnimation(this, "geometry");animation->setDuration(100);animation->setStartValue(QRect(this->pos(), this->size()));QRect rcEnd;if (m_enDriection & Up){rcEnd = QRect(this->x(), -this->height() + 2, this->size().width(), this->rect().height());}else if (m_enDriection & Left){rcEnd = QRect(-this->width() + 2, this->y(), this->size().width(), this->rect().height());}else if (m_enDriection & Right){rcEnd = QRect(m_nDesktopWidth - 2, this->y(), this->size().width(), this->rect().height());}animation->setEndValue(rcEnd);animation->start();
}void AutoHideWidget::showWidget()
{QPoint pos = this->pos();QPropertyAnimation *animation = new QPropertyAnimation(this, "geometry");animation->setDuration(100);animation->setStartValue(QRect(pos, this->size()));QRect rcEnd;if (m_enDriection & Up){rcEnd = QRect(this->x(), 0, this->size().width(), this->rect().height());}else if (m_enDriection & Left){rcEnd = QRect(0, this->y(), this->size().width(), this->rect().height());}else if (m_enDriection & Right){rcEnd = QRect(m_nDesktopWidth - this->width(), this->y(), this->size().width(), this->rect().height());}animation->setEndValue(rcEnd);animation->start();
}

其实就是将窗体移动到屏幕外了,在移动的时候加上动画就搞定了。

源代码下载:源码下载

Qt实现窗体在显示屏旁边自动隐藏(类似QQ)相关推荐

  1. python 窗体在屏幕边缘自动隐藏_如何阻止图像离开屏幕边缘?

    当鼠标悬停在窗口边缘时,jetfighterx的一部分会离开屏幕,这会导致狼蛛在它重生到窗口顶部时不时爆炸,我如何才能阻止这种情况的发生(不使用类)?在 代码:import pygame, sys, ...

  2. Qt 自定义悬浮窗(带动画,类似QQ拼音输入法)

    1.运行效果 实现功能: 1.可拖动. 2.可显示,可隐藏 . 3.悬浮在主界面上面. 4.带动画. 2.ui界面  3.源码 //FloatingWindow.h #pragma once#incl ...

  3. 模拟QQ自动隐藏窗体

    //--------------------------------------------------------------------------- // 代码名称:模拟QQ自动隐藏窗体 //  ...

  4. 开发精彩实例:窗体自动隐藏

    最近写个小程序,想让窗体自动隐藏,到csdn搜索,发现不少网友问这个问题,可是具体实现的例子不多,我经过琢磨,实现可记录停靠位置,可左上右三方停靠并隐藏.现将实现的例子拿出来供大家参考.  实现窗体自 ...

  5. Qt写的流量监控 and 网络延迟 and 自动隐藏

    功能:流量时时监控,5秒均值,30秒峰值,网络延迟,自动隐藏到桌面右侧 软件界面如下: 链接 https://download.csdn.net/download/bidevsdadi/1249775 ...

  6. 制作可以自动隐藏的弹出式菜单

    关键在于对WM_ENTERIDLE消息的处理 在菜单状态下移动鼠标会产生WM_ENTERIDLE消息 这时用TempPoint.WindowFromPoint可以取得当前鼠标所指窗体的句柄 再用Get ...

  7. excel链接隐藏工作表_自动隐藏Excel工作表

    excel链接隐藏工作表 When you build a workbook for other people to use, there might be worksheets that can s ...

  8. C#实现仿QQ窗口靠边自动隐藏

    今晚做网络通讯的实验,想实现下类似QQ滴窗口靠近屏幕上方自动隐藏,上网搜了下代码,发现这个比较简单,而且又很好的实现了所需功能,特记录如下,主要用了三个计时器来实现,开始时设置计时器1启用,计时器2 ...

  9. 【C#】WPF和winform窗体贴边隐藏(类似QQ)

    [WPF]实现窗体贴边隐藏 1.新建WPF项目Test,主窗体MainWindow.xaml,在后台MainWindow.xaml.cs填写下面的代码.主窗体调用Hide类,实现隐藏功能. //有些引 ...

最新文章

  1. 过滤3个字节以上的utf-8字符
  2. 设置超链接的HTML标签是______,如何对a超链接标签中包含的HTML标签进行样式设置...
  3. Android获取手机内部存储和外部存储
  4. @scheduled 每30s 执行一次_全球首发5G神U麒麟820,荣耀30S卡位5G档位最强,售价2399起...
  5. 后端技术:MyBatis动态SQL写法介绍
  6. 自己动手写Docker系列 -- 4.1使用busybox创建容器
  7. Linux 基金会执行董事 Jim Zemlin:全球 Linux 的发展和生态
  8. BZOJ4337 : BJOI2015 树的同构
  9. 智能优化算法:金枪鱼群优化算法-附代码
  10. 2016-05-25 margin-right jsp获取页面流变量 文字颜色
  11. JS前端实现点击按钮生成并下载txt文件
  12. VM安装windows10操作系统
  13. tga缩略图预览_甜蜜的缩略图预览库
  14. 武汉大学计算机学院2015级,武汉大学研究生课程-数据挖掘-2015级研究生试题.doc...
  15. TVbox带会员带推广版本
  16. 【干货】Python文件打包 .exe文件反编译
  17. YOLO v3 详解
  18. Tomcat中设计模式
  19. oracle创建序列号
  20. Git详细使用大全- rebase, merge, switch, cherry-pick, tag

热门文章

  1. Python将文件映射到内存使用mmap.mmap()函数
  2. 可穿戴机器外骨骼设计构想
  3. salesforce survey的生成与发送
  4. 2017 Oracle RWP 性能之旅,北京站再度来袭
  5. 数据库sql语句的总结
  6. 【科普】公交车超载的标准是什么?1平米最多站8人
  7. 【宠物用品】宠物饮水机方案
  8. 2021年制冷与空调设备运行操作考试题库及制冷与空调设备运行操作最新解析
  9. HTML淘宝网的制作实训关键点,《网页设计与制作》实训指导书.doc
  10. springboot实现条形码_基于SpringBoot+Mybatis+Thymeleaf商品信息管理系统