Qt::填充类型

编程入门 行业动态 更新时间:2024-10-09 08:30:42

Qt::填充<a href=https://www.elefans.com/category/jswz/34/1771355.html style=类型"/>

Qt::填充类型

二维矢量动画智能制作软件开发合集

链接:软件开发技术分享及记录合集

个人开发二维矢量动画智能制作软件界面如下:


目录

一、渐变样式原理

二、渐变样式代码实现

三、渐变样式软件测试视频

结束语


一、渐变样式原理

当填充类型设置为渐变样式,其效果为在图形内,颜色按照一定规则进行有序变化,本软件设置了4种渐变类型,分别是:1)线性渐变;2)对称渐变;3)辐射渐变;4)锥向渐变。

渐变效果可采用Qt的QBrush中的QGradient类实现,首先根据需求设置颜色渐变类型及颜色规则,颜色规则的定义按照需求设置,设置节点位置及对应颜色(节点位置在0.1至1.0范围内),参考界面如下:

QGradient类下有3个子类:QLinearGradient,QRadialGradient和QConicalGradient。实现原理上:线性渐变和反射渐变采用QLinearGradient实现,区别在于Spread参数的设置,反射渐变需将Spread参数设置为QGradient::RepeatSpread即可。每个渐变类详见介绍Qt官方文件,QLinearGradient需要设置起始节点和终止节点2个参数,QRadialGradient辐射渐变需要设置渐变中心和渐变半径2个参数;QConicalGradient锥向渐变需要设置渐变中心和渐变起始位置2个参数。为实现渐变参数交互,需要引入渐变手柄协助参数传递。

二、渐变样式代码实现

.h文件变量申明:

int gType;

QList<qreal> pG;

QList<QColor> cG;

QBrush gradientBrush;

QGraphicsItem *Item;

switch(gType)
{
case 0:
{QLinearGradient g;g.setStart(Item->gStart);g.setFinalStop(Item->gEnd);for(int i = 0; i<cG.count(); i++)g.setColorAt(pG[i],cG[i]);g.setSpread(QGradient::PadSpread);gradientBrush = QBrush(g);
}break;
case 1:
{QLinearGradient g;g.setStart(Item->gStart);g.setFinalStop(Item->gEnd);for(int i = 0; i<cG.count(); i++)g.setColorAt(pG[i],cG[i]);g.setSpread(QGradient::ReflectSpread);gradientBrush = QBrush(g);
}break;
case 2:
{QRadialGradient g;g.setCenter(Item->gStart);QLineF l(Item->gStart,Item->gEnd);g.setCenterRadius(l.length());for(int i = 0; i<cG.count(); i++)g.setColorAt(pG[i],cG[i]);g.setSpread(QGradient::ReflectSpread);gradientBrush = QBrush(g);
}break;
case 3:
{QConicalGradient g;g.setCenter(Item->gStart);QLineF l1(Item->gStart,Items->gStart+QPointF(1,0));QLineF l2(Item->gStart,Item->gEnd);g.setAngle(l1.angleTo(l2));for(int i = 0; i<cG.count(); i++)g.setColorAt(pG[i],cG[i]);g.setSpread(QGradient::ReflectSpread);gradientBrush = QBrush(g);
}break;
}

三、渐变样式软件测试视频

渐变样式测试


结束语

本文简要梳理了软件【渐变样式】的实现框架,内容均为原创。

作者文笔水平一般,请大家多多包涵和指正,十分欢迎进一步交流学习。

若需,请联系本人小红书(小红书号:YzLab96),谢谢。

链接:  软件开发及测试所有视频合集见小红书​​​​​​​

更多推荐

Qt::填充类型

本文发布于:2024-02-13 04:53:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690762.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:类型   Qt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!