Qt实现窗体在显示屏旁边自动隐藏(类似QQ)
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)相关推荐
- python 窗体在屏幕边缘自动隐藏_如何阻止图像离开屏幕边缘?
当鼠标悬停在窗口边缘时,jetfighterx的一部分会离开屏幕,这会导致狼蛛在它重生到窗口顶部时不时爆炸,我如何才能阻止这种情况的发生(不使用类)?在 代码:import pygame, sys, ...
- Qt 自定义悬浮窗(带动画,类似QQ拼音输入法)
1.运行效果 实现功能: 1.可拖动. 2.可显示,可隐藏 . 3.悬浮在主界面上面. 4.带动画. 2.ui界面 3.源码 //FloatingWindow.h #pragma once#incl ...
- 模拟QQ自动隐藏窗体
//--------------------------------------------------------------------------- // 代码名称:模拟QQ自动隐藏窗体 // ...
- 开发精彩实例:窗体自动隐藏
最近写个小程序,想让窗体自动隐藏,到csdn搜索,发现不少网友问这个问题,可是具体实现的例子不多,我经过琢磨,实现可记录停靠位置,可左上右三方停靠并隐藏.现将实现的例子拿出来供大家参考. 实现窗体自 ...
- Qt写的流量监控 and 网络延迟 and 自动隐藏
功能:流量时时监控,5秒均值,30秒峰值,网络延迟,自动隐藏到桌面右侧 软件界面如下: 链接 https://download.csdn.net/download/bidevsdadi/1249775 ...
- 制作可以自动隐藏的弹出式菜单
关键在于对WM_ENTERIDLE消息的处理 在菜单状态下移动鼠标会产生WM_ENTERIDLE消息 这时用TempPoint.WindowFromPoint可以取得当前鼠标所指窗体的句柄 再用Get ...
- excel链接隐藏工作表_自动隐藏Excel工作表
excel链接隐藏工作表 When you build a workbook for other people to use, there might be worksheets that can s ...
- C#实现仿QQ窗口靠边自动隐藏
今晚做网络通讯的实验,想实现下类似QQ滴窗口靠近屏幕上方自动隐藏,上网搜了下代码,发现这个比较简单,而且又很好的实现了所需功能,特记录如下,主要用了三个计时器来实现,开始时设置计时器1启用,计时器2 ...
- 【C#】WPF和winform窗体贴边隐藏(类似QQ)
[WPF]实现窗体贴边隐藏 1.新建WPF项目Test,主窗体MainWindow.xaml,在后台MainWindow.xaml.cs填写下面的代码.主窗体调用Hide类,实现隐藏功能. //有些引 ...
最新文章
- 语音合成的语音相位图
- 2019百度之星初赛1
- cf1553E. Permutation Shift
- ik做尾巴摆动 maya_maya中使用节点做IK骨骼的拉伸
- 485通信实现自动收发功能
- Scanner和BufferedReader从控制台读取输入数据
- 公交驾校自动约车脚本
- VC6生成Release版本程序
- 【机器学习】CART决策树原理及python实现
- 【.Net】.Net操作AD域账号,获取AD用户后可以获取的属性列表 directoryEntry Properties list
- java开发html如何转换为word,Java怎么将html转换成word
- 五类、超五、六类、超六类网线
- solidworks 显示设计库图标
- tplink路由器设置网址方法
- 指定decode_responses=True,连接redis存的数据是字符串格式
- WiFi、ZigBee、BLE用哪个?小米内部是这样选的
- [IDA Plugin] IDA插件收集
- Sublime Text 4.0 4084 汉化版 — 代码编辑器
- 自动语音对话系统 Python实现
- matlab函数exp,Matlab基本函数-exp函数