1 实现阴影
主窗体放一个widget,主窗体设置透明,widget设置背景色。background-color: rgb(140, 170, 170);border-radius:10px
QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect(this);
effect->setOffset(0, 0);
effect->setColor(QColor(63, 63, 63, 180));
effect->setBlurRadius(20);
ui->widget->setGraphicsEffect(effect);
2 任意拖动代码
void DialogTst::mousePressEvent(QMouseEvent *event)
{
bPressFlag = true;
beginDrag = event->pos();
QWidget::mousePressEvent(event);
}
void DialogTst::mouseReleaseEvent(QMouseEvent *event)
{
bPressFlag = false;
QWidget::mouseReleaseEvent(event);
}
void DialogTst::mouseMoveEvent(QMouseEvent *event)
{
if(bPressFlag)
{
QPoint relaPos(QCursor::pos() - beginDrag);
move(relaPos);
}
QWidget::mouseMoveEvent(event);
}
头文件代码
private:
Ui::DialogTst *ui;
bool bPressFlag = false;
QPoint beginDrag;
protected:
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
效果