查看完整版本: [-- QLabel 绘制圆形图片 --]

QTCN开发网 -> Qt 作品展 -> QLabel 绘制圆形图片 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

shixingya 2018-02-02 16:03

QLabel 绘制圆形图片


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);
        }
    }

};

shixingya 2018-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);
     }
}

};

shixingya 2018-03-15 19:14
shixingya:class MaskLabel : public QLabel
{
public:
    MaskLabel(QWidget* parent=nullptr):QLabel(parent)
    {
....... (2018-03-15 19:14) 

透明圆角

壹步壹步jl 2019-07-11 20:14
楼主您好,请问怎样能显示出一个圆形的动图(.gif)呢


查看完整版本: [-- QLabel 绘制圆形图片 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled