有时候我们需要隐藏窗体外框,但是那样做就会发现无法移动该窗体了,这个时候就需要自己去添加鼠标监听事件,来实现这个功能。
需要的头文件和添加的事件函数:
#include <QMouseEvent>
protected:
void mouseMoveEvent(QMouseEvent *e);//鼠标移动
void mousePressEvent(QMouseEvent *e);//鼠标按下移动
接着再实现他们:
/**
* @brief 鼠标移动监听
* @param e
*/
void YourClass::mouseMoveEvent(QMouseEvent *e)
{
if(e->buttons() & Qt::LeftButton)
{
//移到左上角
move(e->globalPos() - p);
}
}
/**
* @brief 鼠标按下监听
* @param e
*/
void YourClass::mousePressEvent(QMouseEvent *e)
{
if(e->button() == Qt::LeftButton)
{
//求坐标差值
//当前点击坐标-窗口左上角坐标
p = e->globalPos() - this->frameGeometry().topLeft();
}
}
这样添加就完成了。