目录
设置无状态栏
setWindowFlag(Qt::FramelessWindowHint);
关闭
设置左键弹窗关闭功能
//新建下拉菜单
menuQuit = new QMenu(this);
//QAction 则代表一个可以在菜单、工具栏或按钮中触发的动作
QAction *closeAct = new QAction(QIcon(":/res/close.png"), tr("退出"), this);
//将动作赋值给下拉菜单
menuQuit->addAction(closeAct);
//在 menuQuit 菜单中选择一个动作时,triggered 信号会被发出,并触发这个Lambda函数
connect(menuQuit,&QMenu::triggered,this,[=]{
//关闭窗口
this->close();
});
鼠标左键事件
void Widget::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::RightButton){
//触发菜单栏
menuQuit->exec(QCursor::pos());
}
}
移动
鼠标左键事件
void Widget::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton){
//获取鼠标当前在桌面的哪个位置
mOffset = event->globalPos()-this->pos();
}
}
鼠标左键按下后移动事件
void Widget::mouseMoveEvent(QMouseEvent *event)
{
//设置窗口的新位置 移动后的位置减去移动前的
this->move(event->globalPos() - mOffset);
}