使用QML怎么实现一个圆环颜色选择器

  介绍

本篇文章为大家展示了使用QML怎么实现一个圆环颜色选择器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

import  QtQuick  2.0   import  QtQuick.Controls  2.2   Item  {   id: baseItem   ,宽度:350   ,高度:宽度   ,signal  colorChanged (string  newColor);   ,property  int  circleWidth: 40;//圆环宽度   ,property  var  curColor:定义;      ,Rectangle  {   id:才能控制   宽度:才能baseItem.width   高度:才能宽度   颜色:,才能“transparent"   border.width才能:1   border.color才能:“black"   anchors.margins才能:10//才能,根据角度获取颜色值   function 才能getAngleColor(角),{   ,,var 颜色,,d;   ,,if  (angle  & lt;, Math.PI  *, 2,/, 5),{,//角:0 - 72   ,,,d =, 255,/, (* Math.PI  2,/, 5), *,角;   ,,,color =, & # 39; 255年,& # 39;,+,Math.round (d), +, & # 39; 0 & # 39;;,//,颜色:,255,0,0,安康;255255年,0   ,,},else  if  (angle  & lt;, Math.PI  *, 4,/, 5),{,//角:72 - 144   ,,,d =, 255,/, (* Math.PI  2,/, 5), *, (angle 安康;Math.PI  *, 2,/, 5);   ,,,color =,(255年,安康;Math.round (d)), +, & # 39; 255年,0 & # 39;;,//,颜色:,255255 0,安康;0255年,0   ,,},else  if  (angle  & lt;, Math.PI  *, 6,/, 5),{,//角:144 - 216   ,,,d =, 255,/, (* Math.PI  2,/, 5), *, (angle 安康;Math.PI  *, 4,/, 5);   ,,,color =, & # 39; 0255年,& # 39;,+,Math.round (d),,//,颜色:,0255 0,安康;0255255   ,,},else  if  (angle  & lt;, Math.PI  *, 8,/, 5),{,//角:216 - 288   ,,,d =, 255,/, (* Math.PI  2,/, 5), *, (angle 安康;Math.PI  *, 6,/, 5);   ,,,color =, & # 39; 0 & # 39; +(255年,安康;Math.round (d)), +, & # 39; 255 & # 39;,,//,颜色:,0255255,安康;0,0255   ,,},else {,//角:288 - 360   ,,,d =, 255,/, (* Math.PI  2,/, 5), *, (angle 安康;Math.PI  *, 8,/, 5);   ,,,color =, Math.round (d), +, & # 39; 0 & # 39;, +,(255年,安康;Math.round (d)),,,//,颜色:,0,0255,安康;255年,0,0   ,,}   ,,return 颜色;   ,,}//,才能获取旋转角度   function 才能;getRotateAngle  (mouseX,像老鼠的),{   ,,var  yPosOffset =, mouseY 作用;control.width/2,,//,计算角度,:,谭(x),=, (y2-y1)/(x2-x1);   ,,var  xPosOffset =, mouseX 作用;control.height/2;   ,,//,旋转的弧度,hudu,,角度角   ,,var  hudu =, 0,, angle =, 0;   ,,if  (xPosOffset  !=, 0,,,, yPosOffset  !=, 0), {   ,,,hudu =, Math.atan (Math.abs(时间/yPosOffset  xPosOffset));   ,,}      ,,if  (xPosOffset ===, 0,,,, yPosOffset ===, 0), {   ,,,return 角度;   ,,},else  if  (xPosOffset  & lt;, 0,,,, yPosOffset  & lt;, 0), {   ,,,angle =, hudu  *, 180,/, Math.PI;,,,,,//,左上   ,,},else  if  (xPosOffset ===, 0,,,, yPosOffset  & lt;, 0), {   ,,,angle =, 90,,,,,,,,,,,//,上,中间   ,,},else  if  (0, xPosOffset 的在,,,,,yPosOffset  & lt;, 0), {   ,,,angle =, 180,安康;hudu  *, 180,/, Math.PI;,,,,//,右上   ,,},else  if  (0, xPosOffset 的在,,,,,yPosOffset ===, 0), {   ,,,angle =, 180,,,,,,,,,,//,上,下,中间   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用QML怎么实现一个圆环颜色选择器