1.定义窗体类
2.设置无边框
this->setAttribute(Qt::WA_TranslucentBackground, true); //设置窗体透明
this->setWindowFlags(Qt::Window | | Qt::FramelessWindowHint); //设置无边框
3.设置窗体阴影效果
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setOffset(0, 0); //设置阴影距离
shadow->setColor(QColor("#444444")); //设置阴影颜色
shadow->setBlurRadius(10); //设置阴影圆角
ui->widget->setGraphicsEffect(shadow); //给嵌套QWidget设置阴影
ui->widget->setStyleSheet("background-color:#E9F1FE"); //给嵌套QWidget添加颜色
4.添加鼠标拖动窗口事件(重写mousePressEvent、mouseMoveEvent、mouseMoveEvent)
QPoint m_lastPos;
void mousePressEvent(QMouseEvent *event)
{
m_lastPos = event->globalPos();
}
void mouseMoveEvent(QMouseEvent *event)
{
this->move(this->x() + (event->globalX() - m_lastPos.x()),
this->y() + (event->globalY() - m_lastPos.y()));
m_lastPos = event->globalPos();
}
void mouseMoveEvent(QMouseEvent *event)
{
m_lastPos = event->globalPos();
}
5.自定义最大最小化及关闭按钮,实现相关功能即可