用Qt绘制带阴影的圆角矩形
1.绘制一个400x400大小的白色圆角矩形
void RoundRectWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event)
// 绘制一个400x400大小的白色圆角矩形
QPainterPath path;
path.addRoundedRect(30,30,400,400,25,25); // 圆角矩形的位置大小以及圆角角度
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true); // 抗锯齿
painter.fillPath(path, QBrush(QColor(255,255,255))); // 圆角矩形颜色
}
2.设置阴影部分
// 设置阴影
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
assert(0 != shadow);
shadow->setOffset(0, 0); // 以像素为单位保存阴影偏移量。默认情况下,偏移量是向右下方8像素。
shadow->setColor(QColor("#444444")); // 阴影的颜色
shadow->setBlurRadius(15); // 设置模糊半径
this->setGraphicsEffect(shadow);
3.参考效果: