圆角边框设计
在QT使用时为了界面的美观对其4个角进行圆弧化设置,并去掉了标题栏,从使界面看起来简介:
//界面圆角,圆角后鼠标不能拖动
QBitmap bmp(this->size());
bmp.fill();
QPainter p(&bmp);
p.setPen(Qt::NoPen);
p.setBrush(Qt::black);
p.drawRoundedRect(bmp.rect(),10,10); //设置圆弧化大小
setMask(bmp);
鼠标拖动设置
在去掉标题栏后鼠标就没法拖动界面了,所以需要对界面鼠标点击事件虚函数进行重写:
声明:
//鼠标响应,对虚类进行重写
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
bool m_Drag = true;
QPoint m_DragPosition;
定义:
//鼠标:点击位置
void ModWindow::mousePressEvent(QMouseEvent *e)
{
//鼠标拖动无边框界面组合函数
if(e->button() == Qt::LeftButton){
m_Drag = true;
m_DragPosition = e->globalPos() - this->pos();
e->accept();
}
tempFlag = true;
}
//鼠标:移动目标位置
void ModWindow::mouseMoveEvent(QMouseEvent *e)
{
//鼠标拖动无边框界面组合函数
if(!tempFlag)
return;
if(m_Drag && (e->buttons() && Qt::LeftButton)){
move(e->globalPos() - m_DragPosition);
e->accept();
}
}
//鼠标:释放重置
void ModWindow::mouseReleaseEvent(QMouseEvent *e)
{
//鼠标拖动无边框界面组合函数,重置
m_Drag - false;
tempFlag = false;
}