Qt 渐变色Gradient
来源:互联网 发布:房卡麻将源码教程 编辑:程序博客网 时间:2024/05/02 02:38
线性渐变 QLinearGradient
弧度渐变 QConicalGradient
辐射渐变 QRadialGradient
QPainter painter(this); //线性渐变 QLinearGradient linearGradient(0,0,150,150); linearGradient.setColorAt(0.2,Qt::white); linearGradient.setColorAt(0.6,Qt::blue); linearGradient.setColorAt(1.0,Qt::yellow); painter.setBrush(QBrush(linearGradient)); painter.drawEllipse(0,0,200,150); //保存当前的painter 放到堆中 save()函数必须有对应的restore()函数 //restore()函数 恢复painter的状态(从堆中取出来) painter.save();
painter.translate(200,0); //以原坐标的(200,0)为新的坐标系坐标原点(0,0) const int r = 100; painter.setRenderHint(QPainter::Antialiasing,true); //弧度渐变 //弧度渐变由圆心(xc,yc)和一个角度a定义。颜色从圆心开始像表的秒针一样扩散。 //QConicalGradient(qreal cx, qreal cy, qreal angle) 圆心在坐标原点(0,0)角度从60度开始 QConicalGradient conicalGradient(0,0,60); conicalGradient.setColorAt(0.0,Qt::red);// conicalGradient.setColorAt(60.0/360.0,Qt::yellow);// conicalGradient.setColorAt(120.0/360.0,Qt::green);// conicalGradient.setColorAt(180.0/360.0,Qt::cyan);// conicalGradient.setColorAt(240.0/360.0,Qt::blue);// conicalGradient.setColorAt(300.0/360.0,Qt::magenta); conicalGradient.setColorAt(1.0,Qt::yellow); //translate(r,r) 以原坐标的(r,r)为新的坐标系坐标原点(0,0)cx,cy 即相对于窗口(300,100) painter.translate(r,r); //QBrush brush(brush Style); QBrush brush(conicalGradient); painter.setPen(Qt::NoPen); painter.setBrush(brush); painter.drawEllipse(QPoint(0,0),r,r); painter.save();
//辐射渐变 //圆心(0,0)cx,cy 角度0 radius 焦点(30,30)fx,fy开始向外扩散 painter.translate(0,200); QRadialGradient radialGradient(0,0,100,50,50); radialGradient.setColorAt(0,Qt::green); radialGradient.setColorAt(0.8,Qt::red); painter.translate(r,r); painter.setBrush(QBrush(radialGradient)); painter.drawEllipse(QPoint(0,0),r,r); painter.save(); //辐射渐变 //QRadialGradient radialGradient(310,110,100,330,130); ////创建了一个QRadialGradient对象实例,参数分别为中心坐标,半径长度和焦点坐标,如果需要对称那么中心坐标和焦点坐标要一致 //radialGradient.setColorAt(0,Qt::green); ////radialGradient.setColorAt(0.2,Qt::white); //radialGradient.setColorAt(0.4,Qt::blue); ////radialGradient.setColorAt(0.6,Qt::red); //radialGradient.setColorAt(1.0,Qt::yellow); //painter.setBrush(QBrush(radialGradient)); //painter.drawEllipse(210,10,200,200);//在相应的坐标画出来 painter.restore();
0 0
- Qt 渐变色Gradient
- Qt之Gradient渐变填充
- Gradient 渐变
- Android背景渐变色(shape,gradient)的实现,gradient
- 1. android 背景渐变色(shape,gradient)
- android 背景渐变色(shape,gradient)
- android 背景渐变色(shape,gradient)
- android 背景渐变色(shape,gradient)
- android 背景渐变色(shape,gradient)
- android 背景渐变色(shape,gradient)
- android 背景渐变色(shape,gradient)
- android 背景渐变色(shape,gradient)
- android 背景渐变色(shape,gradient)
- Android背景渐变色(shape,gradient)
- Android背景渐变色(shape,gradient)
- Android背景渐变色(shape,gradient)
- Android背景渐变色(shape,gradient)
- Android背景渐变色(shape,gradient)
- Maven安装配置
- Mysql之sql语句优化:explain
- ReactNative中文网推出的代码热更新服务
- java 企业网站源码 后台 springmvc SSM 前台 静态化 代码生成器
- 注释 Android Framework 中的一堆 debug 信息
- Qt 渐变色Gradient
- 【整理】Adam Taylor玩转Microzed系列——以太网通信部分
- An unhandled exception of type 'System.IO.FileNotFoundException' occurred in Unknown Module
- 微信自适应页面
- rsync远程同步+inotify-tools自动检测笔记
- php上传文件并存储到mysql数据库的方法
- Vue监听数据变化
- 终端环境运维菜单-yaml
- 最简单的鼠标悬停,实现下拉列表功能 bootstrap