QT边框阴影
发布日期:2021-05-20 02:03:15 浏览次数:25 分类:精选文章

本文共 1196 字,大约阅读时间需要 3 分钟。

一、通过重载paintEvent函数实现阴影边框

在Qt应用开发中,当需要为窗口或控件添加自定义边框效果时,重载paintEvent函数是一个常见且有效的方法。这种方式允许开发者在绘制时添加细节控制,尤其是在需要动态调整阴影效果时非常有用。

void WebView::paintEvent(QPaintEvent *event) {
QPainterPath path;
path.setFillRule(Qt::WindingFill);
path.addRect(10, 10, this->width() - 20, this->height() - 20);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.fillPath(path, QBrush(Qt::white));
QColor color(0, 0, 0, 50);
for (int i = 0; i < 10; i++) {
QPainterPath path;
path.setFillRule(Qt::WindingFill);
path.addRect(10 - i, 10 - i, this->width() - (10 - i) * 2, this->height() - (10 - i) * 2);
color.setAlpha(150 - qSqrt(i) * 50);
painter.setPen(color);
painter.drawPath(path);
}
}

二、通过图片实现阴影边框

在Qt中,除了编写自定义绘制逻辑外,还可以利用图形库预先生成的图片来实现复杂的界面效果。这种方法在某些场景下能够显著提高性能表现。

QGraphicsDropShadowEffect *shadow_effect = new QGraphicsDropShadowEffect(this);
shadow_effect->setOffset(-5, 5);
shadow_effect->setColor(Qt::gray);
shadow_effect->setBlurRadius(8);
network_group_box->setGraphicsEffect(shadow_effect);

三、子控件添加阴影效果

当需要在现有控件上添加阴影效果时,可以通过为子控件添加图形效果来实现。这是一种简洁且高效的实现方式。

通过以上三种方法,可以根据项目需求选择最合适的实现方式来为界面元素添加阴影效果。

上一篇:qml之从零开始编写网易云音乐目录
下一篇:Qt SQLite database is locked Unable to fetch row

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月14日 18时07分11秒