可以判断窗口的位置,当与边缘的距离小于某值时,再判断鼠标是否在窗口,判断是否隐藏窗口;
根据隐藏窗口的隐藏位置,获得某块区域,当鼠标在这个位置时,显示窗口。
比较简单地方法,设置定时器,当获得窗口的高度为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);
}
}