介绍
本篇文章为大家展示了使用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怎么实现一个圆环颜色选择器