类似qq那种,当窗口移动到桌面上边缘时,鼠标离开窗口,窗口自动向上隐藏,当鼠标回到靠边的位置,窗口又显示出来。
------解决方案--------------------
比较简单地方法,设置定时器,当获得窗口的高度为0的时候,鼠标离开窗口区域时,改变窗口大小,当鼠标移动进入窗口区域时,恢复原来窗口、
------解决方案--------------------
在头文件中声明这两个鼠标事件,然后实现代码如下:
void Widget::enterEvent(QEvent *)
{
QRect rc;
QRect rect;
rect = this->geometry();
rc.setRect(rect.x(),rect.y(),rect.width(),rect.height());
if(rect.top()<0)
{
rect.setX(rc.x());
rect.setY(0);
move(rc.x(),-2);
}
}
void Widget::leaveEvent(QEvent *)
{
QRect rc;
QRect rect;
rect = this->geometry();
rc.setRect(rect.x(),rect.y(),rect.width(),rect.height());
if(rect.top()<0)
{
move(rc.x(),-rc.height()+2);
}
}