重新实现的颜色选择器如下图所示:

颜色的渐变都是通过拉渐变或者是直接在paintevent中画出来的,根据hsv和rgb两种颜色类型之间的转化来实现。

重载QSlider来实现颜色条花了不少时间,经过别人指点后才恍然大悟,主要还是对这些类的用法和类的实现原理不熟悉造成的,下来得好好的熟悉下。

重载QSlider实现颜色滚动条的代码如下:

    QPainter painter(this);if(this->orientation() == Qt::Horizontal){const int offset = 5;QRect rect = this->rect();rect.setHeight(rect.height() - 5);QRect sliderRect = rect.adjusted(offset,0,-offset,-rect.height()/2);painter.setPen(QPen(Qt::black, 0.5));painter.setBrush(back);painter.drawRect(sliderRect);painter.setBrush(gradient());painter.drawRect(sliderRect);const double k = (double)(value() - minimum()) / (maximum()-minimum());int x = (int)((rect.width()-2*offset) * k) + offset;QPoint tickPts[] = {QPoint(x,sliderRect.bottom()+1),QPoint(x-offset,rect.bottom()-1),QPoint(x+offset,rect.bottom()-1),};painter.setBrush(Qt::white);painter.drawPolygon(tickPts,3);return;}this->setFixedWidth(25);const int offset = 5;QRect rect = this->rect();QRect sliderRect = QRect(rect.left()+offset, rect.top()+offset,rect.right()-2*offset,rect.bottom()-2*offset);const double k = (double)(value() - minimum()) / (maximum()-minimum());int y = (int)((rect.height()-2*offset) * (1-k)) + offset;QPoint tickTop[] = {QPoint(sliderRect.left(), y),QPoint(rect.left(), y - offset),QPoint(rect.left(), y + offset)};painter.setPen(QPen(Qt::black, 0.5));painter.drawPolygon(tickTop, 3);painter.setBrush(back);painter.drawRect(sliderRect);painter.setBrush(gradient());painter.drawRect(sliderRect);QPoint tickPts[] = {QPoint(sliderRect.right()+1, y),QPoint(rect.right(), y - offset),QPoint(rect.right(), y + offset)};painter.setBrush(Qt::white);painter.drawPolygon(tickPts,3);

详细项目源码已经上传了,需要的可以去瞅瞅,版本QT5.3.

GitHub下载:点击打开链接

CSDN下载:点击打开链接

QT中颜色选择器QColorDialog的重新实现相关推荐

  1. android 字体颜色选择,Android中颜色选择器和改变字体颜色的实例教程

    易采站长站为您分析Android中颜色选择器和改变字体颜色的实例教程,其中改变字体颜色用到了ColorPicker颜色选择器,需要的朋友可以参考下 1.构建一张七彩图: 我们经常看到这种样子的颜色选择 ...

  2. QT QColor颜色选择器并获取rgb值

    QColorDialog color;//调出颜色选择器对话框QColor c = color.getRgba(); //c.red(), c.green(), c.blue()是分别对应的rgb值 ...

  3. android字体颜色黑色,Android中颜色选择器和改变字体颜色的实例教程

    1.构建一张七彩图: 我们经常看到这种样子的颜色选择器吧.. 然后其实右边的亮度选择是: 这样我们的代码就可以进行啦... // 创建七彩图片 private void init() { int[] ...

  4. QT 颜色选择器 QColorDialog 使用

    需求:点击修改按钮 弹出 颜色选择框,确定后 给 label 设置背景色 打印: 代码: #include <QColorDialog>void MyColor::on_pushButto ...

  5. qt中颜色对话框弹出时应用程序输出栏出现setGeometry: Unable to set geometry 152x30+682+300 on QWidgetWindow/‘QColorDialo

    前言 在项目中点击按钮,弹出颜色选择对话框,但同时应用程序会在应用程序输出一栏中显示. setGeometry: Unable to set geometry 152x30+682+300 on QW ...

  6. Qt中颜色选择框输出所选中的颜色值

    引言 颜色选择框可以选择自己喜欢的颜色,然后点击确定按钮,对应的在相应的代码中可以获取所选择的颜色,将选中的颜色以能够看懂的方式输出,这里就可以用所选颜色的r,g,b值,即输出对应的红,绿,蓝值. 实 ...

  7. qt中颜色对话框弹出时应用程序输出栏出现QWindowsWindow::setGeometry: Unable to set geometry 180x30+345+311 (frame: 202x8

    引言 在项目中点击按钮,弹出颜色选择对话框,但同时应用程序会在应用程序输出一栏中显示 QWindowsWindow::setGeometry: Unable to set geometry 180x3 ...

  8. QT QColor颜色选择器学习

    在做pcl的配准的时候,需要用不同的颜色来区分源点云和目标点云,找了一些资料发现QColor可以实现这个功能. 添加头文件#include <QColorDialog>后,可以通过 QCo ...

  9. 一文搞懂Qt中的颜色渐变(QGradient Class)

    一文搞懂Qt中的颜色渐变(QGradient Class) 1, 快速开始! Qt中与颜色渐变有关的类是QGradient 其中它又有三个子类:QLinearGradient.QRadialGradi ...

最新文章

  1. java第二阶段学习day5
  2. 1.大数据处理架构Hadoop
  3. python生成器yield原理_Python generator生成器和yield表达式详解
  4. 关于VISIO工具栏、菜单栏消失的解决办法
  5. Oracle Parallel Execution(并行执行)
  6. 用matlab画玫瑰代码,网上收到的用matlab画玫瑰花的代码怎么不行啊,报告错误,求大神...
  7. 使用WebViewJavascriptBridge与UIWebView交互
  8. C语言 二维数组(指针)动态分配和释放(转)
  9. Linux用户-政府篇
  10. 字符串函数sprintf / sprintf_s 容易出错的地方
  11. 用Python分析了我的微信好友,原来我身边都是这样的人……绝了
  12. Cocos2d-x手机游戏开发视频教程
  13. 计算机表格操作教程,Excel使用教程 Excel表格的10个基本操作
  14. Hibernate框架检索策略
  15. Out-of-Band(OOB)调研
  16. PT100恒流源测温电路
  17. 魅族ROOT在线申请地址
  18. 开发随笔——花生壳错误“您的局域网服务器连接失败,请检查局域网IP与端口“
  19. Deepin系统下MATLAB中文字体乱码问题解决(加上字体美化)
  20. 装机注意事项:一次装机差点翻车的经历

热门文章

  1. 机器学习算法(二十四):最近邻算法 KNN(k-nearest neighbor)
  2. 10月15日计算机视觉基础学习笔记——分割网络的设计
  3. 亚马逊新品如何推广引流?新产品上架后跨境新手操作流程
  4. windows server 服务器 ftp搭建所遇到问题总结
  5. SS210L-ASEMI低压降贴片肖特基二极管SS210L
  6. 用命令行在局域网内斗地主_上课划水上班摸鱼_chenjie的博客
  7. Windows XP 系统服务优化设置详解
  8. 太阳能电池板AI视觉检测:不良品全程阻断,高效助力光伏扩产
  9. Netty权威指南(四)TCP粘包/拆包问题
  10. 个人一年工作情况总结报告