QPainter合成模式示例

QPainter::CompositionMode
在控件上画两条有透明度的交叉线,展示线重叠部分的颜色效果。
线的颜色rgba为(0, 255, 0, 100),即半透明绿色。
代码:

#include <QApplication>
#include <QWidget>
#include <QPainter>
class CompositionWgt : public QWidget
{
public:
    int mMode;
    void paintEvent(QPaintEvent *e) override
    {
        QPen pen;
        pen.setColor(QColor(0,255,0,100));
        pen.setWidth(20);
        QPainter painter(this);
        painter.setPen(pen);
        painter.setCompositionMode((QPainter::CompositionMode)mMode);
        painter.drawLine(0,0,200,200);
        painter.drawLine(200,0,0,200);
    }
};

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    int posx = 0, posy = 0;
    for(int i = 0; i <= 37; i++)
    {
        CompositionWgt *wgt = new CompositionWgt;
        wgt->setWindowTitle(QString::number(i));
        wgt->mMode = i;
        wgt->move(posx, posy);
        wgt->resize(200, 200);
        wgt->show();

        posx += 200;
        if(posx > 1700)
        {
            posx = 0;
            posy += 200;
        }
    }

    return app.exec();
}

效果:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 为了方便开发,在 GitHub 上放置 xinetzone / xinet 用于 GUI 开发。该仓库的 xin...
    水之心阅读 1,496评论 0 1
  • CSS CSS3 布局属性 标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100 !importan...
    53cfdb355418阅读 514评论 0 0
  • 一、网页认识 1、网页组成 文字、图片、超链接、音频、视频; 2、网页背后本质 前端程序员写的一行行的代码; 3、...
    Cargo阅读 598评论 0 0
  • 一、HTML基础标签 1.HTML简介 超文本标记语言(英语:HyperText Markup Language,...
    是阳仔啊阅读 327评论 0 0
  • 一,css常见问题: 一、margin问题 上下margin重叠问题,即给相邻的两个div设置margin-bot...
    _往后_阅读 1,695评论 0 2

友情链接更多精彩内容