要绘制HSV取色板,一般通过绘制前景色和背景色的方式实现,先绘制前景,然后绘制背景,前景是HSV颜色空间,从左到右,背景是亮度,从上到下,xs和ys是鼠标的当前的位置。

    def graphicsView_rgb_palette(self,xs,ys):
try:
rect = QRectF(, , self.graphicsView_color_palette.width() - ,
self.graphicsView_color_palette.height() - )
self.graphicsView_color_palette_scene = QGraphicsScene(rect) # 创建场景
self.graphicsView_color_palette.setScene(self.graphicsView_color_palette_scene)
#前景,HSV空间 ,从360到0
colorGradient = QLinearGradient(, , self.graphicsView_color_palette.width(),)
colorGradient.setSpread(QGradient.RepeatSpread);
colorGradient.setColorAt(, QColor(, , , ));
colorGradient.setColorAt(0.166, QColor(, , , ));
colorGradient.setColorAt(0.333, QColor(, , , ));
colorGradient.setColorAt(0.5, QColor(, , , ));
colorGradient.setColorAt(0.666, QColor(, , , ));
colorGradient.setColorAt(0.833, QColor(, , , ));
colorGradient.setColorAt(, QColor(, , , )); #背景,调节亮度,最上面透明,最下面白色
blackGradient = QLinearGradient(, , ,self.graphicsView_color_palette.height())
blackGradient.setSpread(QGradient.RepeatSpread);
blackGradient.setColorAt(,QColor(,,,));
blackGradient.setColorAt(, QColor(,,,));
#绘制取色板鼠标指示点
item = QGraphicsEllipseItem(-, -, , ) # 创建椭圆--场景坐标
item.setPos(xs, ys) # 给图元设置在场景中的坐标(移动图元)--图元中心坐标
item.setBrush(Qt.black) # 设置画刷
#
self.graphicsView_color_palette_scene.setBackgroundBrush(colorGradient); #设置前景色
self.graphicsView_color_palette_scene.setForegroundBrush(blackGradient); #设置背景色 self.graphicsView_color_palette_scene.addItem(item)
self.graphicsView_color_palette_scene.clearSelection() # 【清除选择】
except Exception as e:
self.UART_Display_Text(str(e))

pyqt5 通过QLinearGradient 绘制取色板的更多相关文章

  1. PyQt5利用QPainter绘制各种图形

    这个例子我做了好几天: 1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化 2)网上的PyQt的例子根本运行不了 填了无数个坑,结合二者,终于能完成了一个关于绘图的东西.这个过程也掌握 ...

  2. iOS_24_画画板(含取色板)

    终于效果例如以下: 一.简单说明 1.使用一个数组 strokesArr(笔画数组)记录全部笔画.数组中保存的是一个个的笔画字典,一个字典就是一个笔画.笔画字典中有三项:笔画的大小.颜色.points ...

  3. canvas教程(二) 绘制直线

    经过 canvas 教程(一) 简介 我们知道了 canvas 的一些基本情况 而本次是给大家带来直线的绘制 canvas 中,基本图形有两种,一种是直线,还有一种是曲线 但是无论是直线还是曲线,我们 ...

  4. ios项目里扒出来的json文件

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

  5. Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)

    下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...

  6. iOS及Mac开源项目和学习资料【超级全面】

    UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITable ...

  7. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  8. 推荐10款非常优秀的 HTML5 开发工具

      HTML5 发展如火如荼,随着各大浏览器对 HTML5 技术支持的不断完善以及 HTML5 技术的不断成熟,未来 HTML5 必将改变我们创建 Web 应用程序的方式.今天这篇文章向大家推荐10款 ...

  9. iOS开发--iOS及Mac开源项目和学习资料

    文/零距离仰望星空(简书作者)原文链接:http://www.jianshu.com/p/f6cdbc8192ba著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文出处:codecl ...

随机推荐

  1. 使用ScrollRect制作翻页

    1.标准的层级结构 ScrollRect->ViewPort->Content,Viewport负责显示区域的大小一般和Mask一起配合使用,Content使用Layout来布局,如果想使 ...

  2. Django学习笔记3

    From the last two parts, we know, by using the HttpResponse we can return text to the web page, and ...

  3. LaTeX竖立公式符号

    1.LaTeX技巧668:LaTeX如何实现直立积分号 \usepackage{amsmath,amssymb} \DeclareSymbolFont{EulerExtension}{U}{euex} ...

  4. C语言-宏定义与使用分析

    1.C语言中的宏定义 #define是预处理器处理的单元实体之— #define定义的宏可以出现在程序的任意位置 #define定义之后的代码都可以使用这个宏 2.定义宏常量 #define定义的宏常 ...

  5. 安卓模拟器genymotion 安装使用

    下载:https://www.genymotion.com/download/ 安装前先注册: https://www.runoob.com/w3cnote/android-tutorial-geny ...

  6. ssh: connect to git@gitlab.xxxxx.com:xxxxx.git port 22: Connection refused

    公司服务器上的gitlab项目添加了ssh密钥,但是操作时却报错ssh: connect to git@gitlab.xxxxx.com:xxxxx.git port 22: Connection r ...

  7. 详解C++11智能指针

    前言 C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用. C++11智能指针介 ...

  8. VIM键盘映射 (Map)

    http://www.pythonclub.org/linux/vim/map VIM键盘映射 (Map) 设置键盘映射 使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来.例如使用以下命 ...

  9. django admin 后台总结(转载)

    https://www.cnblogs.com/wumingxiaoyao/p/6928297.html

  10. ABB 机器人 流水灯and跑马灯

    MODULE MainModule VAR signaldi signaldi14; PROC main() //di14_test 数字输入信号 WHILE di14_test = DO ycld; ...