【发布时间】:2018-01-27 10:40:28
【问题描述】:
我想用图片圈做QLabel:
代码:
QLabel *label = new QLabel(this);
QPixmap avatarPixmap(":/Icon/default_avatar.png");
label->setPixmap(avatarPixmap);
label->setStyleSheet("border: 0.5px solid red; border-radius: 50%; background-clip: padding;");
它只对QLabel 进行舍入,而不是图像。如何解决?谢谢。
更新:
唯一的方法是为QLabel覆盖paintEvent
代码:
void AccountImage::paintEvent(QPaintEvent *event)
{
QPixmap pixmap(":/Icon/default_avatar.png");
QBrush brush(pixmap);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setBrush(brush);
painter.drawRoundedRect(0, 0, width(), height(), 100, 100);
QLabel::paintEvent(event);
}
图像是圆形的,但未正确缩放。有什么想法吗?
【问题讨论】:
-
@liliscent 修改图片是什么意思?
-
@liliscent 将边框图像应用于
QLabel在我的情况下不起作用,我需要稍后通过代码更改默认图像。有没有办法重绘QLabel? -
@liliscent 我已经为
QLabel覆盖了paintEvent。我会将更改添加到我的主要帖子中。
标签: c++ qt windows-applications