首页| 论坛| 消息

标题:QLabel 绘制圆形图片
作者:shixingya
日期:2018-02-02 16:03
内容:

class MaskLabel : public QLabel
{
void paintEvent(QPaintEvent *e)
{
if(pixmap()){
QPainter painter(this);
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
QPainterPath path;
int round = qMin(width()*0.8, height()*0.8);
path.addEllipse(width()*0.1,height()*0.2, round, round);
painter.setClipPath(path);
painter.drawPixmap(width()*0.1,height()*0.2, width()*0.8, height()*0.8, *pixmap());
}else{
QLabel::paintEvent(e);
}
}
};


#1 [shixingya 03-15 19:14]
class MaskLabel : public QLabel
{
public:
MaskLabel(QWidget* parent=nullptr):QLabel(parent)
{
setStyleSheet ("border:0px groove gray;border-radius:20px; ");
}
protected:
void paintEvent(QPaintEvent *e)
{
if(pixmap()){
QPainter *painter=new QPainter(this);
QPainterPath path;
path.addEllipse(width()*0.1,height()*0.1, width()*0.8,height()*0.8);
painter->setClipPath(path);
painter->drawPixmap(0,0,width(),height(), *pixmap());
}else{
QLabel::paintEvent(e);
}
}
};
#2 回 shixingya 的帖子 [shixingya 03-15 19:14]
shixingya:class MaskLabel : public QLabel
{
public:
    MaskLabel(QWidget* parent=nullptr):QLabel(parent)
    {
....... (2018-03-15 19:14) 
透明圆角
#3 [壹步壹步jl 07-11 20:14]
楼主您好,请问怎样能显示出一个圆形的动图(.gif)呢

回复 发表
主题 版块