QT:颜色选择器

普通

Qt提供了一个现成的QColorDialog类。

用法:

cpp 复制代码
#include <QColorDialog>

QColor color = QColorDialog::getColor(Qt::white, this);
if(!color.isValid()){
     //点击 关闭 或 cancel 颜色无效
}else {
     ui->text->setText(color.name());//类似##ffff
     QRgb rgb = color.rgb();
     qDebug() << "rgb== " <<  qRed(rgb) << qGreen(rgb) << qBlue(rgb);
}

**缺点:**不能直接显示颜色

进阶

用toolbutton来显示被选择的颜色

实现方法:

其实就是点击上面的button后,新建一个布局,往里遍历生成6*8个QToolButton,每个赋值一个颜色。点击后跟换上面的button的Icon(用Qpainter在QPixmap里画矩形,QRect这是绘制矩形框,根据需求设置不同的绘制方式,最后用 painter.drawPixmap往QRect里填)。

相关推荐
qq_401700415 分钟前
C语言void*
c语言·开发语言
sg_knight6 分钟前
Python 面向对象基础复习
开发语言·python·ai编程·面向对象·模型
Stone_OverLooking40 分钟前
Qt6.5.3 mingw64 Ninja编译oracle oci驱动
数据库·qt·oracle
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于Java的人体骨骼健康知识普及系统为例,包含答辩的问题和答案
java·开发语言
lly2024061 小时前
Julia 函数
开发语言
sheji34161 小时前
【开题答辩全过程】以 基于JAVA的社团管理系统为例,包含答辩的问题和答案
java·开发语言
周杰伦_Jay1 小时前
【GOFrame】模块化框架与生产级实践
开发语言·gitlab·github
Simon席玉1 小时前
C++的命名重整
开发语言·c++·华为·harmonyos·arkts
chao1898441 小时前
MATLAB中的多重网格算法与计算流体动力学
开发语言·算法·matlab
木盏1 小时前
三维高斯的分裂
开发语言·python