QT调色板 StyleSheet qtcolor 样式表 制作 调色板

QT调色板 StyleSheet qtcolor 样式表 制作 调色板

本文主要介绍制作了一个页面 利用QtStyleSheet 配置颜色RGB数值 便于找到自己想要的颜色对应的RGB参数

一、制作ui界面

ui界面如图建立

我是用LineEdit建立方块显示颜色和颜色数值,然后用horizontalSlider来对应颜色的RGB数值

所需控件名字按照我的写,可以直接复制代码,如果更改了名字请在代码段自行更改。

除了提及的控件,别的控件名字任意。
image
image

二、控件设置

这里要把3个horizontalSlider的最大数值改为255

image
然后把3个LineEdit设置为只读
image

三、建立槽函数,编辑代码

切换到ui编辑界面,右键点击horizontalSlider,点击转到槽,然后选择valueChange(int)
image
image

复制代码进槽函数里面,要注意,红色对应的槽函数设置的是rgb里red的数值,QColor color(r,0,0);

绿色和蓝色分别代表g和b,按照这个原则复制粘贴并修改好绿色和蓝色的槽函数

    // 获取RGB的值
    int r = value;
    int g = ui->lineEdit_rgb_g->text().toInt();
    int b = ui->lineEdit_rgb_b->text().toInt();
    // 创建QColor对象
    QColor color(r,0,0);
    QColor rgb_color(r, g, b);
    // 显示rgb的值
    ui->lineEdit_rgb_r->setText(QString::number(value));
    ui->lineEdit_rgb->setText(QString("%1,%2,%3").arg(r).arg(g).arg(b));
    // 根据亮度设置字体色
    double gray = (0.299 * r + 0.587 * g + 0.114 *b) / 255;//公式是在网上查到的
    QString rgb_textColor = gray > 0.5 ? "black" : "white";
    // 设置样式表
    ui->lineEdit_rgb_r->setStyleSheet(QString("QLineEdit { background-color: %1; color: white; }").arg(color.name()));
    ui->lineEdit_rgb->setStyleSheet(QString("QLineEdit { background-color: %1; color: %2; }").arg(rgb_color.name()).arg(rgb_textColor));

image

四、程序运行

运行程序后拖动进度条会有如下效果:

动画
最后生成的rgb数值可以用户复制使用

五、思考

1.通过上一步可以得到我们想要的颜色,那我们如何把调色板得到的颜色用到我们的控件或者页面主题上呢
2.通过设置颜色如何做到给我们的应用换皮肤
3.如何做出qq音乐或者网易云音乐那种细腻的换肤操作

  • 20
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值